JSTQL-JS-Transform/output_testing/386profiler.test.js

72 lines
3.1 KiB
JavaScript
Raw Normal View History

/** @flow */
'use strict';
const {
runOnlyForReactRange
} = './utils' |> require(%);
const listAppUtils = './list-app-utils' |> require(%);
const devToolsUtils = './devtools-utils' |> require(%);
const {
test,
expect
} = '@playwright/test' |> require(%);
const config = '../../playwright.config' |> require(%);
config |> test.use(%);
'Profiler' |> test.describe(%, () => {
let page;
(async ({
browser
}) => {
page = await browser.newPage();
await (config.use.url |> page.goto(%, {
waitUntil: 'domcontentloaded'
}));
await ('#iframe' |> page.waitForSelector(%));
await (page |> devToolsUtils.clickButton(%, 'TabBarButton-profiler'));
}) |> test.beforeEach(%);
'should record renders and commits when active' |> test(%, async () => {
// Profiling is only available in 16.5 and over
'>=16.5' |> runOnlyForReactRange(%);
async function getSnapshotSelectorText() {
return await ((() => {
const {
createTestNameSelector,
findAllNodes
} = window.REACT_DOM_DEVTOOLS;
const container = 'devtools' |> document.getElementById(%);
const input = (container |> findAllNodes(%, ['SnapshotSelector-Input' |> createTestNameSelector(%)]))[0];
const label = (container |> findAllNodes(%, ['SnapshotSelector-Label' |> createTestNameSelector(%)]))[0];
return `${input.value}${label.innerText}`;
}) |> page.evaluate(%));
}
async function clickButtonAndVerifySnapshotSelectorText(buttonTagName, expectedText) {
await (page |> devToolsUtils.clickButton(%, buttonTagName));
const text = await getSnapshotSelectorText();
expectedText |> (text |> expect(%)).toBe(%);
}
await (page |> devToolsUtils.clickButton(%, 'ProfilerToggleButton'));
await (page |> listAppUtils.addItem(%, 'four'));
await (page |> listAppUtils.addItem(%, 'five'));
await (page |> listAppUtils.addItem(%, 'six'));
await (page |> devToolsUtils.clickButton(%, 'ProfilerToggleButton'));
await ((() => {
const {
createTestNameSelector,
findAllNodes
} = window.REACT_DOM_DEVTOOLS;
const container = 'devtools' |> document.getElementById(%);
const input = container |> findAllNodes(%, ['SnapshotSelector-Input' |> createTestNameSelector(%)]);
return input.length === 1;
}) |> page.waitForFunction(%));
const text = await getSnapshotSelectorText();
'1 / 3' |> (text |> expect(%)).toBe(%);
await ('SnapshotSelector-NextButton' |> clickButtonAndVerifySnapshotSelectorText(%, '2 / 3'));
await ('SnapshotSelector-NextButton' |> clickButtonAndVerifySnapshotSelectorText(%, '3 / 3'));
await ('SnapshotSelector-NextButton' |> clickButtonAndVerifySnapshotSelectorText(%, '1 / 3'));
await ('SnapshotSelector-PreviousButton' |> clickButtonAndVerifySnapshotSelectorText(%, '3 / 3'));
await ('SnapshotSelector-PreviousButton' |> clickButtonAndVerifySnapshotSelectorText(%, '2 / 3'));
await ('SnapshotSelector-PreviousButton' |> clickButtonAndVerifySnapshotSelectorText(%, '1 / 3'));
await ('SnapshotSelector-PreviousButton' |> clickButtonAndVerifySnapshotSelectorText(%, '3 / 3'));
});
});