[{"data":1,"prerenderedAt":410},["ShallowReactive",2],{"navigation_docs":3,"-fake-browser-triggering-events":127,"-fake-browser-triggering-events-surround":407},[4,22,51,62,73,84,99,115],{"title":5,"path":6,"stem":7,"children":8,"page":21},"Get Started","/get-started","0.get-started",[9,13,17],{"title":10,"path":11,"stem":12},"Introduction","/get-started/introduction","0.get-started/0.introduction",{"title":14,"path":15,"stem":16},"Browser Support","/get-started/browser-support","0.get-started/1.browser-support",{"title":18,"path":19,"stem":20},"Contributing","/get-started/contributing","0.get-started/2.contributing",false,{"title":23,"path":24,"stem":25,"children":26,"page":21},"Fake Browser","/fake-browser","fake-browser",[27,31,35,39,43,47],{"title":28,"path":29,"stem":30},"Installation","/fake-browser/installation","fake-browser/0.installation",{"title":32,"path":33,"stem":34},"Testing Frameworks","/fake-browser/testing-frameworks","fake-browser/1.testing-frameworks",{"title":36,"path":37,"stem":38},"Triggering Events","/fake-browser/triggering-events","fake-browser/2.triggering-events",{"title":40,"path":41,"stem":42},"Resetting State","/fake-browser/reseting-state","fake-browser/3.reseting-state",{"title":44,"path":45,"stem":46},"Implemented Apis","/fake-browser/implemented-apis","fake-browser/4.implemented-apis",{"title":48,"path":49,"stem":50},"API Reference","/fake-browser/api","fake-browser/api",{"title":52,"path":53,"stem":54,"children":55,"page":21},"Isolated Element","/isolated-element","isolated-element",[56,59],{"title":28,"path":57,"stem":58},"/isolated-element/installation","isolated-element/0.installation",{"title":48,"path":60,"stem":61},"/isolated-element/api","isolated-element/api",{"title":63,"path":64,"stem":65,"children":66,"page":21},"Job Scheduler","/job-scheduler","job-scheduler",[67,70],{"title":28,"path":68,"stem":69},"/job-scheduler/installation","job-scheduler/0.installation",{"title":48,"path":71,"stem":72},"/job-scheduler/api","job-scheduler/api",{"title":74,"path":75,"stem":76,"children":77,"page":21},"Match Patterns","/match-patterns","match-patterns",[78,81],{"title":28,"path":79,"stem":80},"/match-patterns/installation","match-patterns/0.installation",{"title":48,"path":82,"stem":83},"/match-patterns/api","match-patterns/api",{"title":85,"path":86,"stem":87,"children":88,"page":21},"Messaging","/messaging","messaging",[89,92,96],{"title":28,"path":90,"stem":91},"/messaging/installation","messaging/0.installation",{"title":93,"path":94,"stem":95},"Protocol Maps","/messaging/protocol-maps","messaging/1.protocol-maps",{"title":48,"path":97,"stem":98},"/messaging/api","messaging/api",{"title":100,"path":101,"stem":102,"children":103,"page":21},"Proxy Service","/proxy-service","proxy-service",[104,107,111],{"title":28,"path":105,"stem":106},"/proxy-service/installation","proxy-service/0.installation",{"title":108,"path":109,"stem":110},"Defining Services","/proxy-service/defining-services","proxy-service/1.defining-services",{"title":112,"path":113,"stem":114},"Service Keys","/proxy-service/service-keys","proxy-service/2.service-keys",{"title":116,"path":117,"stem":118,"children":119,"page":21},"Storage","/storage","storage",[120,123],{"title":28,"path":121,"stem":122},"/storage/installation","storage/0.installation",{"title":124,"path":125,"stem":126},"Typescript","/storage/typescript","storage/1.typescript",{"id":128,"title":36,"body":129,"description":202,"extension":401,"links":402,"meta":403,"navigation":404,"path":37,"seo":405,"stem":38,"__hash__":406},"docs/fake-browser/2.triggering-events.md",{"type":130,"value":131,"toc":399},"minimark",[132,136,160,171,179,185,196,388,395],[133,134,135],"p",{},"When possible, events are triggered based on other calls to other browser APIs. For example:",[137,138,139,152],"ul",{},[140,141,142,143,147,148,151],"li",{},"Calling ",[144,145,146],"code",{},"fakeBrowser.runtime.sendMessage()"," will trigger the ",[144,149,150],{},"fakeBrowser.runtime.onMessage"," listeners",[140,153,142,154,147,157,151],{},[144,155,156],{},"fakeBrowser.tabs.create()",[144,158,159],{},"fakeBrowser.tabs.onCreated",[133,161,162,163,166,167,170],{},"Some events, like ",[144,164,165],{},"runtime.onInstalled"," or ",[144,168,169],{},"alarms.onAlarm",", can't be triggered as they would be in a real extension.",[172,173,174,175,178],"alert",{},"In the case of ",[144,176,177],{},"onInstalled",", when is an extension \"installed\" during tests? Never? Or when the tests start? Either way, not useful for testing.",[172,180,174,181,184],{},[144,182,183],{},"onAlarm",", alarms are meant to trigger in the far future, usually a much longer timespan than the duration of a unit test. Also, timers in tests are notoriously flakey and difficult to work with.",[133,186,187,188,191,192,195],{},"Instead, the ",[144,189,190],{},"fakeBrowser"," provides a ",[144,193,194],{},"trigger"," method on every implemented event that you can call to trigger them manually. Pass in the arguments that the listeners are called with:",[197,198,203],"pre",{"className":199,"code":200,"language":201,"meta":202,"style":202},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","await fakeBrowser.runtime.onInstalled.trigger({ reason: 'install' });\nawait fakeBrowser.alarms.onAlarm.trigger({\n  name: 'alarm-name',\n  periodInMinutes: 5,\n  scheduledTime: Date.now(),\n});\nawait fakeBrowser.tab.onCreated.trigger({ ... });\n","ts","",[144,204,205,266,291,309,323,344,354],{"__ignoreMap":202},[206,207,210,214,218,222,225,227,229,231,234,237,240,244,247,250,254,257,260,263],"span",{"class":208,"line":209},"line",1,[206,211,213],{"class":212},"s7zQu","await",[206,215,217],{"class":216},"sTEyZ"," fakeBrowser",[206,219,221],{"class":220},"sMK4o",".",[206,223,224],{"class":216},"runtime",[206,226,221],{"class":220},[206,228,177],{"class":216},[206,230,221],{"class":220},[206,232,194],{"class":233},"s2Zo4",[206,235,236],{"class":216},"(",[206,238,239],{"class":220},"{",[206,241,243],{"class":242},"swJcz"," reason",[206,245,246],{"class":220},":",[206,248,249],{"class":220}," '",[206,251,253],{"class":252},"sfazB","install",[206,255,256],{"class":220},"'",[206,258,259],{"class":220}," }",[206,261,262],{"class":216},")",[206,264,265],{"class":220},";\n",[206,267,269,271,273,275,278,280,282,284,286,288],{"class":208,"line":268},2,[206,270,213],{"class":212},[206,272,217],{"class":216},[206,274,221],{"class":220},[206,276,277],{"class":216},"alarms",[206,279,221],{"class":220},[206,281,183],{"class":216},[206,283,221],{"class":220},[206,285,194],{"class":233},[206,287,236],{"class":216},[206,289,290],{"class":220},"{\n",[206,292,294,297,299,301,304,306],{"class":208,"line":293},3,[206,295,296],{"class":242},"  name",[206,298,246],{"class":220},[206,300,249],{"class":220},[206,302,303],{"class":252},"alarm-name",[206,305,256],{"class":220},[206,307,308],{"class":220},",\n",[206,310,312,315,317,321],{"class":208,"line":311},4,[206,313,314],{"class":242},"  periodInMinutes",[206,316,246],{"class":220},[206,318,320],{"class":319},"sbssI"," 5",[206,322,308],{"class":220},[206,324,326,329,331,334,336,339,342],{"class":208,"line":325},5,[206,327,328],{"class":242},"  scheduledTime",[206,330,246],{"class":220},[206,332,333],{"class":216}," Date",[206,335,221],{"class":220},[206,337,338],{"class":233},"now",[206,340,341],{"class":216},"()",[206,343,308],{"class":220},[206,345,347,350,352],{"class":208,"line":346},6,[206,348,349],{"class":220},"}",[206,351,262],{"class":216},[206,353,265],{"class":220},[206,355,357,359,361,363,366,368,371,373,375,377,379,382,384,386],{"class":208,"line":356},7,[206,358,213],{"class":212},[206,360,217],{"class":216},[206,362,221],{"class":220},[206,364,365],{"class":216},"tab",[206,367,221],{"class":220},[206,369,370],{"class":216},"onCreated",[206,372,221],{"class":220},[206,374,194],{"class":233},[206,376,236],{"class":216},[206,378,239],{"class":220},[206,380,381],{"class":220}," ...",[206,383,259],{"class":220},[206,385,262],{"class":216},[206,387,265],{"class":220},[389,390,391,392,394],"info",{},"If you await the call to ",[144,393,194],{},", it will wait for all the listener to finish running.",[396,397,398],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":202,"searchDepth":268,"depth":268,"links":400},[],"md",null,{},true,{"title":36,"description":202},"V1Zn8HTbie3-_66G8w905VP2c-E_atUBTSsc5tHFn9o",[408,409],{"title":32,"path":33,"stem":34,"description":202,"children":-1},{"title":40,"path":41,"stem":42,"description":202,"children":-1},1779312969344]