@livestore/livestore 0.4.0-dev.6 → 0.4.0-dev.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.tsbuildinfo +1 -1
- package/dist/reactive.d.ts.map +1 -1
- package/dist/reactive.js +8 -4
- package/dist/reactive.js.map +1 -1
- package/dist/reactive.test.js +35 -0
- package/dist/reactive.test.js.map +1 -1
- package/dist/store/store.d.ts.map +1 -1
- package/dist/store/store.js +8 -0
- package/dist/store/store.js.map +1 -1
- package/dist/utils/dev.d.ts +3 -0
- package/dist/utils/dev.d.ts.map +1 -1
- package/dist/utils/dev.js.map +1 -1
- package/package.json +7 -7
- package/src/ambient.d.ts +3 -3
- package/src/reactive.test.ts +50 -1
- package/src/reactive.ts +7 -4
- package/src/store/store.ts +12 -0
- package/src/utils/dev.ts +5 -0
- package/dist/store/store-shutdown.test.d.ts +0 -2
- package/dist/store/store-shutdown.test.d.ts.map +0 -1
- package/dist/store/store-shutdown.test.js +0 -103
- package/dist/store/store-shutdown.test.js.map +0 -1
@@ -1,103 +0,0 @@
|
|
1
|
-
import { describe, expect, it } from 'vitest';
|
2
|
-
import { StoreAlreadyShutdownError } from '@livestore/common';
|
3
|
-
// Mock a minimal store interface for testing
|
4
|
-
class MockStore {
|
5
|
-
isShutdown = false;
|
6
|
-
storeId = 'test-store';
|
7
|
-
checkShutdown = (operation) => {
|
8
|
-
if (this.isShutdown) {
|
9
|
-
throw new StoreAlreadyShutdownError({ operation, storeId: this.storeId });
|
10
|
-
}
|
11
|
-
};
|
12
|
-
shutdown = () => {
|
13
|
-
this.isShutdown = true;
|
14
|
-
};
|
15
|
-
// Mock public methods that should throw after shutdown
|
16
|
-
subscribe = () => {
|
17
|
-
this.checkShutdown('subscribe');
|
18
|
-
return () => { }; // mock unsubscribe
|
19
|
-
};
|
20
|
-
query = () => {
|
21
|
-
this.checkShutdown('query');
|
22
|
-
return {};
|
23
|
-
};
|
24
|
-
commit = () => {
|
25
|
-
this.checkShutdown('commit');
|
26
|
-
};
|
27
|
-
setSignal = () => {
|
28
|
-
this.checkShutdown('setSignal');
|
29
|
-
};
|
30
|
-
manualRefresh = () => {
|
31
|
-
this.checkShutdown('manualRefresh');
|
32
|
-
};
|
33
|
-
events = () => {
|
34
|
-
this.checkShutdown('events');
|
35
|
-
return [];
|
36
|
-
};
|
37
|
-
eventsStream = () => {
|
38
|
-
this.checkShutdown('eventsStream');
|
39
|
-
return [];
|
40
|
-
};
|
41
|
-
}
|
42
|
-
describe('Store shutdown behavior', () => {
|
43
|
-
it('should allow operations before shutdown', () => {
|
44
|
-
const store = new MockStore();
|
45
|
-
// All operations should work before shutdown
|
46
|
-
expect(() => store.subscribe()).not.toThrow();
|
47
|
-
expect(() => store.query()).not.toThrow();
|
48
|
-
expect(() => store.commit()).not.toThrow();
|
49
|
-
expect(() => store.setSignal()).not.toThrow();
|
50
|
-
expect(() => store.manualRefresh()).not.toThrow();
|
51
|
-
expect(() => store.events()).not.toThrow();
|
52
|
-
expect(() => store.eventsStream()).not.toThrow();
|
53
|
-
});
|
54
|
-
it('should throw StoreAlreadyShutdownError for all operations after shutdown', () => {
|
55
|
-
const store = new MockStore();
|
56
|
-
store.shutdown();
|
57
|
-
// All operations should throw after shutdown
|
58
|
-
expect(() => store.subscribe()).toThrow(StoreAlreadyShutdownError);
|
59
|
-
expect(() => store.query()).toThrow(StoreAlreadyShutdownError);
|
60
|
-
expect(() => store.commit()).toThrow(StoreAlreadyShutdownError);
|
61
|
-
expect(() => store.setSignal()).toThrow(StoreAlreadyShutdownError);
|
62
|
-
expect(() => store.manualRefresh()).toThrow(StoreAlreadyShutdownError);
|
63
|
-
expect(() => store.events()).toThrow(StoreAlreadyShutdownError);
|
64
|
-
expect(() => store.eventsStream()).toThrow(StoreAlreadyShutdownError);
|
65
|
-
});
|
66
|
-
it('should include operation name and storeId in error', () => {
|
67
|
-
const store = new MockStore();
|
68
|
-
store.shutdown();
|
69
|
-
try {
|
70
|
-
store.subscribe();
|
71
|
-
expect.fail('Should have thrown');
|
72
|
-
}
|
73
|
-
catch (error) {
|
74
|
-
expect(error).toBeInstanceOf(StoreAlreadyShutdownError);
|
75
|
-
expect(error.operation).toBe('subscribe');
|
76
|
-
expect(error.storeId).toBe('test-store');
|
77
|
-
}
|
78
|
-
});
|
79
|
-
it('should include correct operation name for different methods', () => {
|
80
|
-
const store = new MockStore();
|
81
|
-
store.shutdown();
|
82
|
-
const operations = [
|
83
|
-
['subscribe', () => store.subscribe()],
|
84
|
-
['query', () => store.query()],
|
85
|
-
['commit', () => store.commit()],
|
86
|
-
['setSignal', () => store.setSignal()],
|
87
|
-
['manualRefresh', () => store.manualRefresh()],
|
88
|
-
['events', () => store.events()],
|
89
|
-
['eventsStream', () => store.eventsStream()],
|
90
|
-
];
|
91
|
-
for (const [expectedOperation, fn] of operations) {
|
92
|
-
try {
|
93
|
-
fn();
|
94
|
-
expect.fail(`Should have thrown for ${expectedOperation}`);
|
95
|
-
}
|
96
|
-
catch (error) {
|
97
|
-
expect(error).toBeInstanceOf(StoreAlreadyShutdownError);
|
98
|
-
expect(error.operation).toBe(expectedOperation);
|
99
|
-
}
|
100
|
-
}
|
101
|
-
});
|
102
|
-
});
|
103
|
-
//# sourceMappingURL=store-shutdown.test.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"store-shutdown.test.js","sourceRoot":"","sources":["../../src/store/store-shutdown.test.ts"],"names":[],"mappings":"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"}
|