ext(sw): add list_groups popup handler
This commit is contained in:
@@ -972,3 +972,31 @@ describe('get_active_tab_url', () => {
|
||||
expect(resp.data).toBeNull();
|
||||
});
|
||||
});
|
||||
|
||||
// --- list_groups ---
|
||||
|
||||
describe('list_groups', () => {
|
||||
it('list_groups returns deduplicated sorted groups from manifest', async () => {
|
||||
const state = makeState();
|
||||
state.manifest = {
|
||||
schema_version: 2,
|
||||
items: {
|
||||
a: { id: 'a', title: 't1', type: 'login', group: 'work', tags: [], modified: 0, created: 0, favorite: false, attachment_summaries: [] },
|
||||
b: { id: 'b', title: 't2', type: 'login', group: 'personal', tags: [], modified: 0, created: 0, favorite: false, attachment_summaries: [] },
|
||||
c: { id: 'c', title: 't3', type: 'login', group: 'work', tags: [], modified: 0, created: 0, favorite: false, attachment_summaries: [] },
|
||||
d: { id: 'd', title: 't4', type: 'login', tags: [], modified: 0, created: 0, favorite: false, attachment_summaries: [] }, // no group
|
||||
},
|
||||
};
|
||||
const resp = await route({ type: 'list_groups' } as any, state, makePopupSender());
|
||||
expect(resp.ok).toBe(true);
|
||||
expect(resp.data).toEqual({ groups: ['personal', 'work'] });
|
||||
});
|
||||
|
||||
it('list_groups returns empty array when manifest is null', async () => {
|
||||
const state = makeState();
|
||||
state.manifest = null;
|
||||
const resp = await route({ type: 'list_groups' } as any, state, makePopupSender());
|
||||
expect(resp.ok).toBe(true);
|
||||
expect(resp.data).toEqual({ groups: [] });
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user