test_SyncedTabsDeckStore.js (1588B)
1 "use strict"; 2 3 let { SyncedTabsDeckStore } = ChromeUtils.importESModule( 4 "resource:///modules/syncedtabs/SyncedTabsDeckStore.sys.mjs" 5 ); 6 7 add_task(async function testSelectUnkownPanel() { 8 let deckStore = new SyncedTabsDeckStore(); 9 let spy = sinon.spy(); 10 11 deckStore.on("change", spy); 12 deckStore.selectPanel("foo"); 13 14 Assert.ok(!spy.called); 15 }); 16 17 add_task(async function testSetPanels() { 18 let deckStore = new SyncedTabsDeckStore(); 19 let spy = sinon.spy(); 20 21 deckStore.on("change", spy); 22 deckStore.setPanels(["panel1", "panel2"]); 23 24 Assert.ok( 25 spy.calledWith({ 26 panels: [ 27 { id: "panel1", selected: false }, 28 { id: "panel2", selected: false }, 29 ], 30 isUpdatable: false, 31 }) 32 ); 33 }); 34 35 add_task(async function testSelectPanel() { 36 let deckStore = new SyncedTabsDeckStore(); 37 let spy = sinon.spy(); 38 39 deckStore.setPanels(["panel1", "panel2"]); 40 41 deckStore.on("change", spy); 42 deckStore.selectPanel("panel2"); 43 44 Assert.ok( 45 spy.calledWith({ 46 panels: [ 47 { id: "panel1", selected: false }, 48 { id: "panel2", selected: true }, 49 ], 50 isUpdatable: true, 51 }) 52 ); 53 54 deckStore.selectPanel("panel2"); 55 Assert.ok(spy.calledOnce, "doesn't trigger unless panel changes"); 56 }); 57 58 add_task(async function testSetPanelsSameArray() { 59 let deckStore = new SyncedTabsDeckStore(); 60 let spy = sinon.spy(); 61 deckStore.on("change", spy); 62 63 let panels = ["panel1", "panel2"]; 64 65 deckStore.setPanels(panels); 66 deckStore.setPanels(panels); 67 68 Assert.ok(spy.calledOnce, "doesn't trigger unless set of panels changes"); 69 });