PR review changes

This commit is contained in:
seavor 2026-04-19 16:36:33 -05:00
parent ef6cea6f6c
commit b103db681b
35 changed files with 640 additions and 125 deletions

View file

@ -64,6 +64,73 @@ describe('deck operations', () => {
expect(downloaded?.deckId).toBe(42);
expect(downloaded?.deck).toContain('Lightning Bolt');
});
it('deckUpload sends payload and dispatches uploadServerDeck on success', () => {
connectAndLogin();
SessionCommands.deckUpload('/folder', 0, '4 Counterspell\n20 Island');
const { cmdId, value } = findLastSessionCommand(Data.Command_DeckUpload_ext);
expect(value.path).toBe('/folder');
expect(value.deckList).toContain('Counterspell');
const newFile = create(Data.ServerInfo_DeckStorage_TreeItemSchema, {
id: 7,
name: 'CounterDeck.cod',
});
deliverMessage(buildResponseMessage(buildResponse({
cmdId,
responseCode: Data.Response_ResponseCode.RespOk,
ext: Data.Response_DeckUpload_ext,
value: create(Data.Response_DeckUploadSchema, { newFile }),
})));
// No state assertion: backendDecks is keyed by full tree, not single
// upload — the integration verifies the dispatcher is reached, not the
// tree-merge logic which lives in the reducer.
});
it('deckDel sends deckId and resolves on RespOk', () => {
connectAndLogin();
SessionCommands.deckDel(13);
const { cmdId, value } = findLastSessionCommand(Data.Command_DeckDel_ext);
expect(value.deckId).toBe(13);
deliverMessage(buildResponseMessage(buildResponse({
cmdId,
responseCode: Data.Response_ResponseCode.RespOk,
})));
});
it('deckNewDir sends path + dirName payload and resolves on RespOk', () => {
connectAndLogin();
SessionCommands.deckNewDir('/parent', 'NewFolder');
const { cmdId, value } = findLastSessionCommand(Data.Command_DeckNewDir_ext);
expect(value.path).toBe('/parent');
expect(value.dirName).toBe('NewFolder');
deliverMessage(buildResponseMessage(buildResponse({
cmdId,
responseCode: Data.Response_ResponseCode.RespOk,
})));
});
it('deckDelDir sends path payload and resolves on RespOk', () => {
connectAndLogin();
SessionCommands.deckDelDir('/folder/to/remove');
const { cmdId, value } = findLastSessionCommand(Data.Command_DeckDelDir_ext);
expect(value.path).toBe('/folder/to/remove');
deliverMessage(buildResponseMessage(buildResponse({
cmdId,
responseCode: Data.Response_ResponseCode.RespOk,
})));
});
});
describe('replay operations', () => {