MCPcopy Create free account
hub / github.com/mo/abortcontroller-polyfill / runBasicTests

Function runBasicTests

tests/basic.test.js:23–423  ·  view source on GitHub ↗
(testSuiteTitle, TESTPAGE_URL)

Source from the content-addressed store, hash-verified

21};
22
23const runBasicTests = (testSuiteTitle, TESTPAGE_URL) => {
24 describe(testSuiteTitle, () => {
25 it('check version', async () => {
26 await browser.url(TESTPAGE_URL);
27 const browserData = await browser.executeAsync(async (done) => {
28 done(window.DetectedBrowserData);
29 });
30 expect(typeof browserData.name === 'string').toBe(true);
31 console.log('Tests running on: ' + JSON.stringify(browserData, null, 2));
32 });
33
34 it('Request object has .signal', async () => {
35 await browser.url(TESTPAGE_URL);
36 const result = await browser.executeAsync(async (done) => {
37 const controller = new AbortController();
38 const signal = controller.signal;
39 const request = new Request('/', { signal });
40 if (!request.signal) {
41 done('FAIL: missing request.signal');
42 }
43 if (!Request.prototype.isPrototypeOf(request)) {
44 done('FAIL: wrong prototype');
45 }
46 done('PASS');
47 });
48 expect(result).toBe('PASS');
49 });
50
51 it('abort during fetch', async () => {
52 const { server, baseUrl } = createFetchTargetServer();
53 await browser.url(TESTPAGE_URL);
54 const { errorName, signalReasonName } = await browser.executeAsync(async (baseUrl, done) => {
55 setTimeout(() => {
56 done({ name: 'fail' });
57 }, 2000);
58 const controller = new AbortController();
59 const signal = controller.signal;
60 setTimeout(() => {
61 controller.abort();
62 }, 500);
63 try {
64 await fetch(`${baseUrl}?sleepMillis=1000`, { signal });
65 } catch (error) {
66 done({ errorName: error.name, signalReasonName: signal.reason.name });
67 }
68 }, baseUrl);
69 expect(errorName).toBe('AbortError');
70 expect(signalReasonName).toBe('AbortError');
71 server.close();
72 });
73
74 it('abort when multiple fetches are using the same signal', async () => {
75 const { server, baseUrl } = createFetchTargetServer();
76 await browser.url(TESTPAGE_URL);
77 const errors = await browser.executeAsync(async (baseUrl, done) => {
78 setTimeout(() => {
79 done({ name: 'fail' });
80 }, 2000);

Callers 1

basic.test.jsFile · 0.85

Calls 8

abortMethod · 0.95
createFetchTargetServerFunction · 0.85
addEventListenerMethod · 0.80
removeEventListenerMethod · 0.80
throwIfAbortedMethod · 0.80
toStringMethod · 0.45
timeoutMethod · 0.45
anyMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…