fix: isolate in-memory client persistence
This commit is contained in:
@@ -602,6 +602,40 @@ func TestNewDeviceDefaults(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestNewDeviceMemoryClientDefaultsToNoCache(t *testing.T) {
|
||||
testServer := newDeviceTestServer(t, loadSpecFixture(t), []string{`{"homelist":[{"id":"10","uid":1}]}`, `{"device_info":[{"did":"a","model":"test.light.v1"}],"has_more":false}`})
|
||||
client, err := NewClientWithAuthData(testAuthData(), WithHTTPClient(testServer.server.Client()))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
client.baseURL = testServer.server.URL
|
||||
client.availability = true
|
||||
client.availabilityValid = true
|
||||
client.availabilityAt = time.Now()
|
||||
|
||||
workingDirectory := t.TempDir()
|
||||
previousWorkingDirectory, err := os.Getwd()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := os.Chdir(workingDirectory); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
t.Cleanup(func() {
|
||||
if err := os.Chdir(previousWorkingDirectory); err != nil {
|
||||
t.Errorf("restore working directory: %v", err)
|
||||
}
|
||||
})
|
||||
|
||||
if _, err := NewDevice(context.Background(), client, DeviceSelector{DID: "a"}, WithDeviceDelay(0)); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
cachePath := filepath.Join(workingDirectory, "test.light.v1.json")
|
||||
if _, err := os.Stat(cachePath); !errors.Is(err, os.ErrNotExist) {
|
||||
t.Fatalf("memory client default cache stat error = %v, want not exist", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestDeviceGetSetAndAction(t *testing.T) {
|
||||
testServer := newDeviceTestServer(t, loadSpecFixture(t), []string{
|
||||
`{"homelist":[{"id":"10","uid":1}]}`, `{"device_info":[{"did":"a","name":"Lamp","model":"test.light.v1"}],"has_more":false}`,
|
||||
|
||||
Reference in New Issue
Block a user