Chore: Make tests less flakey & upgrade puppeteer to rrweb-snapshot test suite to run (#1084)
* Upgrade puppeteer to 17.1.3 in rrweb-snapshot * Apply formatting changes * Add ? * Make tests less flakey * Make attribute-setting more explicit * Make test less flakey * Make test less flakey * Upgrade puppeteer for rrdom * Use wait for request animation frame instead of timeout * Force append to happen in second event * Wait till iframe was loaded (now 100ms) * Round the currentTime to 1 decimal place
This commit is contained in:
@@ -128,8 +128,8 @@ describe('integration tests', function (this: ISuite) {
|
||||
waitUntil: 'load',
|
||||
});
|
||||
}
|
||||
const rebuildHtml = (
|
||||
await page.evaluate(`${code}
|
||||
await waitForRAF(page);
|
||||
const rebuildHtml = ((await page.evaluate(`${code}
|
||||
const x = new XMLSerializer();
|
||||
const snap = rrweb.snapshot(document);
|
||||
let out = x.serializeToString(rrweb.rebuild(snap, { doc: document }));
|
||||
@@ -138,8 +138,12 @@ describe('integration tests', function (this: ISuite) {
|
||||
out = out.replace(' xmlns=\"http://www.w3.org/1999/xhtml\"', '');
|
||||
}
|
||||
out; // return
|
||||
`)
|
||||
).replace(/\n\n/g, '');
|
||||
`)) as string)
|
||||
.replace(/\n\n/g, '')
|
||||
.replace(
|
||||
/blob:http:\/\/localhost:\d+\/[0-9a-z\-]+/,
|
||||
'blob:http://localhost:xxxx/...',
|
||||
);
|
||||
expect(rebuildHtml).toMatchSnapshot();
|
||||
});
|
||||
}
|
||||
@@ -158,9 +162,9 @@ describe('integration tests', function (this: ISuite) {
|
||||
compatMode +
|
||||
' for compat-mode.html should be BackCompat as DOCTYPE is deliberately omitted',
|
||||
);
|
||||
const renderedHeight = await page.evaluate(
|
||||
const renderedHeight = (await page.evaluate(
|
||||
'document.querySelector("center").clientHeight',
|
||||
);
|
||||
)) as number;
|
||||
// can remove following assertion if dimensions of page change
|
||||
assert(
|
||||
renderedHeight < 400,
|
||||
@@ -203,8 +207,10 @@ iframe.contentDocument.querySelector('center').clientHeight
|
||||
inlineImages: true,
|
||||
inlineStylesheet: false
|
||||
})`);
|
||||
await page.waitFor(100);
|
||||
const snapshot = await page.evaluate('JSON.stringify(snapshot, null, 2);');
|
||||
await waitForRAF(page);
|
||||
const snapshot = (await page.evaluate(
|
||||
'JSON.stringify(snapshot, null, 2);',
|
||||
)) as string;
|
||||
assert(snapshot.includes('"rr_dataURL"'));
|
||||
assert(snapshot.includes('data:image/webp;base64,'));
|
||||
});
|
||||
@@ -221,8 +227,10 @@ iframe.contentDocument.querySelector('center').clientHeight
|
||||
inlineImages: true,
|
||||
inlineStylesheet: false
|
||||
})`);
|
||||
await page.waitFor(100);
|
||||
const snapshot = await page.evaluate('JSON.stringify(snapshot, null, 2);');
|
||||
await waitForRAF(page);
|
||||
const snapshot = (await page.evaluate(
|
||||
'JSON.stringify(snapshot, null, 2);',
|
||||
)) as string;
|
||||
assert(snapshot.includes('"rr_dataURL"'));
|
||||
assert(snapshot.includes('data:image/webp;base64,'));
|
||||
});
|
||||
@@ -244,10 +252,10 @@ iframe.contentDocument.querySelector('center').clientHeight
|
||||
window.snapshot = sn;
|
||||
}
|
||||
})`);
|
||||
await page.waitFor(100);
|
||||
const snapshot = await page.evaluate(
|
||||
await waitForRAF(page);
|
||||
const snapshot = (await page.evaluate(
|
||||
'JSON.stringify(window.snapshot, null, 2);',
|
||||
);
|
||||
)) as string;
|
||||
assert(snapshot.includes('"rr_dataURL"'));
|
||||
assert(snapshot.includes('data:image/webp;base64,'));
|
||||
});
|
||||
@@ -269,10 +277,10 @@ iframe.contentDocument.querySelector('center').clientHeight
|
||||
window.snapshot = sn;
|
||||
}
|
||||
})`);
|
||||
await page.waitFor(100);
|
||||
const snapshot = await page.evaluate(
|
||||
await waitForRAF(page);
|
||||
const snapshot = (await page.evaluate(
|
||||
'JSON.stringify(window.snapshot, null, 2);',
|
||||
);
|
||||
)) as string;
|
||||
assert(snapshot.includes('"rr_dataURL"'));
|
||||
assert(snapshot.includes('data:image/webp;base64,'));
|
||||
});
|
||||
@@ -287,7 +295,7 @@ iframe.contentDocument.querySelector('center').clientHeight
|
||||
window.snapshot = rrweb.snapshot(document, {
|
||||
inlineStylesheet: true,
|
||||
})`);
|
||||
await page.waitFor(100);
|
||||
await waitForRAF(page);
|
||||
const snapshot = (await page.evaluate(
|
||||
'JSON.stringify(window.snapshot, null, 2);',
|
||||
)) as string;
|
||||
|
||||
Reference in New Issue
Block a user