History

Prepare datamodel for multi-environment (#1765)

Julius Marminge committed 7 months ago

Commit b96308f1 parent 72b7f90121 files · +10206 −4969Browse files

Showing the changes to apps/web/src/threadSelectionStore.test.ts (1 of 121 files). Show all

Unified · Split

apps/web/src/threadSelectionStore.test.ts+53−53
@@ -21,9 +21,9 @@ describe("threadSelectionStore", () => { · 20 unmodified lines
2121 useThreadSelectionStore.getState().toggleThread(THREAD_A);
2222
2323 const state = useThreadSelectionStore.getState();
24− expect(state.selectedThreadIds.has(THREAD_A)).toBe(true);
25− expect(state.selectedThreadIds.size).toBe(1);
26− expect(state.anchorThreadId).toBe(THREAD_A);
24+ expect(state.selectedThreadKeys.has(THREAD_A)).toBe(true);
25+ expect(state.selectedThreadKeys.size).toBe(1);
26+ expect(state.anchorThreadKey).toBe(THREAD_A);
2727 });
2828
2929 it("removes a thread that is already selected", () => {
@@ -32,8 +32,8 @@ describe("threadSelectionStore", () => { · 2 unmodified lines
3232 store.toggleThread(THREAD_A);
3333
3434 const state = useThreadSelectionStore.getState();
35− expect(state.selectedThreadIds.has(THREAD_A)).toBe(false);
36− expect(state.selectedThreadIds.size).toBe(0);
35+ expect(state.selectedThreadKeys.has(THREAD_A)).toBe(false);
36+ expect(state.selectedThreadKeys.size).toBe(0);
3737 });
3838
3939 it("preserves existing selections when toggling a new thread", () => {
@@ -42,9 +42,9 @@ describe("threadSelectionStore", () => { · 2 unmodified lines
4242 store.toggleThread(THREAD_B);
4343
4444 const state = useThreadSelectionStore.getState();
45− expect(state.selectedThreadIds.has(THREAD_A)).toBe(true);
46− expect(state.selectedThreadIds.has(THREAD_B)).toBe(true);
47− expect(state.selectedThreadIds.size).toBe(2);
45+ expect(state.selectedThreadKeys.has(THREAD_A)).toBe(true);
46+ expect(state.selectedThreadKeys.has(THREAD_B)).toBe(true);
47+ expect(state.selectedThreadKeys.size).toBe(2);
4848 });
4949
5050 it("sets anchor to the newly added thread", () => {
@@ -52,7 +52,7 @@ describe("threadSelectionStore", () => { · 1 unmodified line
5252 store.toggleThread(THREAD_A);
5353 store.toggleThread(THREAD_B);
5454
55− expect(useThreadSelectionStore.getState().anchorThreadId).toBe(THREAD_B);
55+ expect(useThreadSelectionStore.getState().anchorThreadKey).toBe(THREAD_B);
5656 });
5757
5858 it("preserves anchor when deselecting a non-anchor thread", () => {
@@ -61,7 +61,7 @@ describe("threadSelectionStore", () => { · 2 unmodified lines
6161 store.toggleThread(THREAD_B);
6262 store.toggleThread(THREAD_A); // deselect A, anchor should stay B
6363
64− expect(useThreadSelectionStore.getState().anchorThreadId).toBe(THREAD_B);
64+ expect(useThreadSelectionStore.getState().anchorThreadKey).toBe(THREAD_B);
6565 });
6666 });
6767
@@ -70,8 +70,8 @@ describe("threadSelectionStore", () => { · 2 unmodified lines
7070 useThreadSelectionStore.getState().setAnchor(THREAD_B);
7171
7272 const state = useThreadSelectionStore.getState();
73− expect(state.anchorThreadId).toBe(THREAD_B);
74− expect(state.selectedThreadIds.size).toBe(0);
73+ expect(state.anchorThreadKey).toBe(THREAD_B);
74+ expect(state.selectedThreadKeys.size).toBe(0);
7575 });
7676
7777 it("enables range select from a plain-click anchor", () => {
@@ -80,10 +80,10 @@ describe("threadSelectionStore", () => { · 2 unmodified lines
8080 store.rangeSelectTo(THREAD_D, ORDERED); // shift-click D
8181
8282 const state = useThreadSelectionStore.getState();
83− expect(state.selectedThreadIds.has(THREAD_B)).toBe(true);
84− expect(state.selectedThreadIds.has(THREAD_C)).toBe(true);
85− expect(state.selectedThreadIds.has(THREAD_D)).toBe(true);
86− expect(state.selectedThreadIds.size).toBe(3);
83+ expect(state.selectedThreadKeys.has(THREAD_B)).toBe(true);
84+ expect(state.selectedThreadKeys.has(THREAD_C)).toBe(true);
85+ expect(state.selectedThreadKeys.has(THREAD_D)).toBe(true);
86+ expect(state.selectedThreadKeys.size).toBe(3);
8787 });
8888
8989 it("is a no-op when anchor is already set to the same thread", () => {
@@ -105,8 +105,8 @@ describe("threadSelectionStore", () => { · 15 unmodified lines
105105 store.setAnchor(THREAD_C);
106106
107107 const state = useThreadSelectionStore.getState();
108− expect(state.anchorThreadId).toBe(THREAD_C);
109− expect(state.selectedThreadIds.size).toBe(0);
108+ expect(state.anchorThreadKey).toBe(THREAD_C);
109+ expect(state.selectedThreadKeys.size).toBe(0);
110110 });
111111 });
112112
@@ -115,9 +115,9 @@ describe("threadSelectionStore", () => { · 2 unmodified lines
115115 useThreadSelectionStore.getState().rangeSelectTo(THREAD_C, ORDERED);
116116
117117 const state = useThreadSelectionStore.getState();
118− expect(state.selectedThreadIds.has(THREAD_C)).toBe(true);
119− expect(state.selectedThreadIds.size).toBe(1);
120− expect(state.anchorThreadId).toBe(THREAD_C);
118+ expect(state.selectedThreadKeys.has(THREAD_C)).toBe(true);
119+ expect(state.selectedThreadKeys.size).toBe(1);
120+ expect(state.anchorThreadKey).toBe(THREAD_C);
121121 });
122122
123123 it("selects range from anchor to target (forward)", () => {
@@ -126,10 +126,10 @@ describe("threadSelectionStore", () => { · 2 unmodified lines
126126 store.rangeSelectTo(THREAD_D, ORDERED);
127127
128128 const state = useThreadSelectionStore.getState();
129− expect(state.selectedThreadIds.has(THREAD_B)).toBe(true);
130− expect(state.selectedThreadIds.has(THREAD_C)).toBe(true);
131− expect(state.selectedThreadIds.has(THREAD_D)).toBe(true);
132− expect(state.selectedThreadIds.size).toBe(3);
129+ expect(state.selectedThreadKeys.has(THREAD_B)).toBe(true);
130+ expect(state.selectedThreadKeys.has(THREAD_C)).toBe(true);
131+ expect(state.selectedThreadKeys.has(THREAD_D)).toBe(true);
132+ expect(state.selectedThreadKeys.size).toBe(3);
133133 });
134134
135135 it("selects range from anchor to target (backward)", () => {
@@ -138,10 +138,10 @@ describe("threadSelectionStore", () => { · 2 unmodified lines
138138 store.rangeSelectTo(THREAD_B, ORDERED);
139139
140140 const state = useThreadSelectionStore.getState();
141− expect(state.selectedThreadIds.has(THREAD_B)).toBe(true);
142− expect(state.selectedThreadIds.has(THREAD_C)).toBe(true);
143− expect(state.selectedThreadIds.has(THREAD_D)).toBe(true);
144− expect(state.selectedThreadIds.size).toBe(3);
141+ expect(state.selectedThreadKeys.has(THREAD_B)).toBe(true);
142+ expect(state.selectedThreadKeys.has(THREAD_C)).toBe(true);
143+ expect(state.selectedThreadKeys.has(THREAD_D)).toBe(true);
144+ expect(state.selectedThreadKeys.size).toBe(3);
145145 });
146146
147147 it("keeps anchor stable across multiple range selects", () => {
@@ -151,11 +151,11 @@ describe("threadSelectionStore", () => { · 3 unmodified lines
151151 store.rangeSelectTo(THREAD_E, ORDERED); // extends B-E (anchor stays B)
152152
153153 const state = useThreadSelectionStore.getState();
154− expect(state.anchorThreadId).toBe(THREAD_B);
155− expect(state.selectedThreadIds.has(THREAD_B)).toBe(true);
156− expect(state.selectedThreadIds.has(THREAD_C)).toBe(true);
157− expect(state.selectedThreadIds.has(THREAD_D)).toBe(true);
158− expect(state.selectedThreadIds.has(THREAD_E)).toBe(true);
154+ expect(state.anchorThreadKey).toBe(THREAD_B);
155+ expect(state.selectedThreadKeys.has(THREAD_B)).toBe(true);
156+ expect(state.selectedThreadKeys.has(THREAD_C)).toBe(true);
157+ expect(state.selectedThreadKeys.has(THREAD_D)).toBe(true);
158+ expect(state.selectedThreadKeys.has(THREAD_E)).toBe(true);
159159 });
160160
161161 it("falls back to toggle when anchor is not in the ordered list", () => {
@@ -166,8 +166,8 @@ describe("threadSelectionStore", () => { · 4 unmodified lines
166166
167167 const state = useThreadSelectionStore.getState();
168168 // Should have added C and reset anchor to C
169− expect(state.selectedThreadIds.has(THREAD_C)).toBe(true);
170− expect(state.anchorThreadId).toBe(THREAD_C);
169+ expect(state.selectedThreadKeys.has(THREAD_C)).toBe(true);
170+ expect(state.anchorThreadKey).toBe(THREAD_C);
171171 });
172172
173173 it("falls back to toggle when target is not in the ordered list", () => {
@@ -177,8 +177,8 @@ describe("threadSelectionStore", () => { · 3 unmodified lines
177177 store.rangeSelectTo(unknownThread, ORDERED);
178178
179179 const state = useThreadSelectionStore.getState();
180− expect(state.selectedThreadIds.has(unknownThread)).toBe(true);
181− expect(state.anchorThreadId).toBe(unknownThread);
180+ expect(state.selectedThreadKeys.has(unknownThread)).toBe(true);
181+ expect(state.anchorThreadKey).toBe(unknownThread);
182182 });
183183
184184 it("selects the single thread when anchor equals target", () => {
@@ -187,8 +187,8 @@ describe("threadSelectionStore", () => { · 2 unmodified lines
187187 store.rangeSelectTo(THREAD_C, ORDERED); // range from C to C
188188
189189 const state = useThreadSelectionStore.getState();
190− expect(state.selectedThreadIds.has(THREAD_C)).toBe(true);
191− expect(state.selectedThreadIds.size).toBe(1);
190+ expect(state.selectedThreadKeys.has(THREAD_C)).toBe(true);
191+ expect(state.selectedThreadKeys.size).toBe(1);
192192 });
193193
194194 it("preserves previously selected threads outside the range", () => {
@@ -200,11 +200,11 @@ describe("threadSelectionStore", () => { · 5 unmodified lines
200200 store.rangeSelectTo(THREAD_D, ORDERED);
201201
202202 const state = useThreadSelectionStore.getState();
203− expect(state.selectedThreadIds.has(THREAD_A)).toBe(true);
204− expect(state.selectedThreadIds.has(THREAD_B)).toBe(true);
205− expect(state.selectedThreadIds.has(THREAD_C)).toBe(true);
206− expect(state.selectedThreadIds.has(THREAD_D)).toBe(true);
207− expect(state.selectedThreadIds.size).toBe(4);
203+ expect(state.selectedThreadKeys.has(THREAD_A)).toBe(true);
204+ expect(state.selectedThreadKeys.has(THREAD_B)).toBe(true);
205+ expect(state.selectedThreadKeys.has(THREAD_C)).toBe(true);
206+ expect(state.selectedThreadKeys.has(THREAD_D)).toBe(true);
207+ expect(state.selectedThreadKeys.size).toBe(4);
208208 });
209209 });
210210
@@ -216,8 +216,8 @@ describe("threadSelectionStore", () => { · 5 unmodified lines
216216 store.clearSelection();
217217
218218 const state = useThreadSelectionStore.getState();
219− expect(state.selectedThreadIds.size).toBe(0);
220− expect(state.anchorThreadId).toBeNull();
219+ expect(state.selectedThreadKeys.size).toBe(0);
220+ expect(state.anchorThreadKey).toBeNull();
221221 });
222222
223223 it("is a no-op when already empty", () => {
@@ -226,7 +226,7 @@ describe("threadSelectionStore", () => { · 2 unmodified lines
226226 const stateAfter = useThreadSelectionStore.getState();
227227
228228 // Should be referentially the same (no unnecessary re-render)
229− expect(stateAfter.selectedThreadIds).toBe(stateBefore.selectedThreadIds);
229+ expect(stateAfter.selectedThreadKeys).toBe(stateBefore.selectedThreadKeys);
230230 });
231231 });
232232
@@ -239,8 +239,8 @@ describe("threadSelectionStore", () => { · 6 unmodified lines
239239 store.removeFromSelection([THREAD_A, THREAD_C]);
240240
241241 const state = useThreadSelectionStore.getState();
242− expect(state.selectedThreadIds.has(THREAD_B)).toBe(true);
243− expect(state.selectedThreadIds.size).toBe(1);
242+ expect(state.selectedThreadKeys.has(THREAD_B)).toBe(true);
243+ expect(state.selectedThreadKeys.size).toBe(1);
244244 });
245245
246246 it("clears anchor when the anchor thread is removed", () => {
@@ -249,7 +249,7 @@ describe("threadSelectionStore", () => { · 2 unmodified lines
249249 store.toggleThread(THREAD_B); // anchor = B
250250 store.removeFromSelection([THREAD_B]);
251251
252− expect(useThreadSelectionStore.getState().anchorThreadId).toBeNull();
252+ expect(useThreadSelectionStore.getState().anchorThreadKey).toBeNull();
253253 });
254254
255255 it("preserves anchor when the anchor thread is not removed", () => {
@@ -258,7 +258,7 @@ describe("threadSelectionStore", () => { · 2 unmodified lines
258258 store.toggleThread(THREAD_B); // anchor = B
259259 store.removeFromSelection([THREAD_A]);
260260
261− expect(useThreadSelectionStore.getState().anchorThreadId).toBe(THREAD_B);
261+ expect(useThreadSelectionStore.getState().anchorThreadKey).toBe(THREAD_B);
262262 });
263263
264264 it("is a no-op when none of the specified threads are selected", () => {
@@ -268,7 +268,7 @@ describe("threadSelectionStore", () => { · 3 unmodified lines
268268 store.removeFromSelection([THREAD_B, THREAD_C]);
269269 const stateAfter = useThreadSelectionStore.getState();
270270
271− expect(stateAfter.selectedThreadIds).toBe(stateBefore.selectedThreadIds);
271+ expect(stateAfter.selectedThreadKeys).toBe(stateBefore.selectedThreadKeys);
272272 });
273273 });
274274

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t