e2ed
Version:
E2E testing framework over Playwright
29 lines (28 loc) • 1.51 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.assertThatTestNamesAndFilePathsAreUniqueInOneRetry = void 0;
const asserts_1 = require("../asserts");
const clone_1 = require("../clone");
/**
* Asserts that test names and file paths inside one retry are unique.
* @internal
*/
const assertThatTestNamesAndFilePathsAreUniqueInOneRetry = (fullTestRuns) => {
const filePathsHash = Object.create(null);
const namesHash = Object.create(null);
const unbrokenTestRuns = fullTestRuns.filter(({ status }) => status !== "broken" /* TestRunStatus.Broken */);
for (const fullTestRun of unbrokenTestRuns) {
const { filePath, name } = fullTestRun;
(0, asserts_1.assertValueIsFalse)(filePath in filePathsHash, 'filePath is unique: each test should be in a separate file', {
firstFullTestRun: (0, clone_1.cloneWithoutLogEvents)(filePathsHash[filePath]),
secondFullTestRun: (0, clone_1.cloneWithoutLogEvents)(fullTestRun),
});
(0, asserts_1.assertValueIsFalse)(name in namesHash, 'name is unique: each test must have a unique name', {
firstFullTestRun: (0, clone_1.cloneWithoutLogEvents)(namesHash[name]),
secondFullTestRun: (0, clone_1.cloneWithoutLogEvents)(fullTestRun),
});
filePathsHash[filePath] = fullTestRun;
namesHash[name] = fullTestRun;
}
};
exports.assertThatTestNamesAndFilePathsAreUniqueInOneRetry = assertThatTestNamesAndFilePathsAreUniqueInOneRetry;