Skip to content

Commit aec0bce

Browse files
Lightning00BladeOrKoN
authored andcommitted
fix
1 parent fa79950 commit aec0bce

File tree

2 files changed

+30
-1
lines changed

2 files changed

+30
-1
lines changed

src/PageCollector.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ import {
1515

1616
export type ListenerMap<EventMap extends PageEvents = PageEvents> = {
1717
[K in keyof EventMap]?: (event: EventMap[K]) => void;
18-
// request: (event: PageEvents['request']) => void;
1918
};
2019

2120
export class PageCollector<T> {
@@ -105,6 +104,7 @@ export class PageCollector<T> {
105104
page.off(name, listener as Handler<unknown>);
106105
}
107106
}
107+
this.storage.delete(page);
108108
}
109109

110110
getData(page: Page): T[] {

tests/PageCollector.test.ts

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,4 +164,33 @@ describe('PageCollector', () => {
164164

165165
assert.equal(collector.getData(page).length, 2);
166166
});
167+
168+
it.only('should clear data on page destroy', async () => {
169+
const browser = getMockBrowser();
170+
const page = (await browser.pages())[0];
171+
const request = getMockRequest();
172+
const collector = new PageCollector(browser, collect => {
173+
return {
174+
request: req => {
175+
collect(req);
176+
},
177+
} as ListenerMap;
178+
});
179+
await collector.init();
180+
181+
page.emit('request', request);
182+
183+
assert.equal(collector.getData(page).length, 1);
184+
185+
browser.emit('targetdestroyed', {
186+
page() {
187+
return Promise.resolve(page);
188+
},
189+
} as Target);
190+
191+
// The page inside part is async so we need to await some time
192+
await new Promise<void>(res => res());
193+
194+
assert.equal(collector.getData(page).length, 0);
195+
});
167196
});

0 commit comments

Comments
 (0)