提交 36a23a84 编写于 作者: dcloud_wdl's avatar dcloud_wdl

update jest-setup.js 适配新版截图对比方案

上级 76b14049
const path = require("path");
const fs = require("fs");
const { configureToMatchImageSnapshot } = require("jest-image-snapshot");
const hbuilderx_version = process.env.HX_Version;
const uniTestPlatformInfo = process.env.uniTestPlatformInfo
? process.env.uniTestPlatformInfo.replace(/\s/g, "_")
: "";
const folderName = `__image_snapshots__/${hbuilderx_version}/__${uniTestPlatformInfo}__`;
let environment = "official";
if (hbuilderx_version.includes("dev")) {
environment = "dev";
} else if (hbuilderx_version.includes("alpha")) {
environment = "alpha";
}
const baseFolderName = `__image_snapshots__/base/${environment}/__${uniTestPlatformInfo}__`;
const {
configureToMatchImageSnapshot
} = require('jest-image-snapshot');
let saveImageSnapshotDir = process.env.saveImageSnapshotDir || path.join(__dirname, '__snapshot__');
expect.extend({
toMatchImageSnapshot: configureToMatchImageSnapshot({
customSnapshotIdentifier(args) {
return args.currentTestName.replace(/\//g, "-").replace(" ", "-");
},
customSnapshotsDir: path.join(__dirname, baseFolderName),
customDiffDir: path.join(__dirname, `${folderName}/`, "diff"),
customSnapshotsDir: process.env.saveImageSnapshotDir,
customDiffDir: path.join(saveImageSnapshotDir, "diff"),
}),
toSaveSnapshot,
toSaveImageSnapshot,
......@@ -37,6 +26,14 @@ if (!fs.existsSync(testCaseToSnapshotFilePath)) {
function writeTestCaseToSnapshotFile(testCaseName, snapshotFilePath) {
const data = JSON.parse(fs.readFileSync(testCaseToSnapshotFilePath));
if (testCaseName.includes(__dirname)) {
testCaseName = testCaseName.substring(`${__dirname}`.length);
if (testCaseName[0] == '/' || testCaseName[0] == '\\') {
testCaseName = testCaseName.substring(1);
};
};
if (!data[testCaseName]) {
data[testCaseName] = [snapshotFilePath];
} else {
......@@ -45,9 +42,14 @@ function writeTestCaseToSnapshotFile(testCaseName, snapshotFilePath) {
fs.writeFileSync(testCaseToSnapshotFilePath, JSON.stringify(data, null, 2));
}
function toSaveSnapshot(received, { customSnapshotsDir, fileName } = {}) {
function toSaveSnapshot(received, {
customSnapshotsDir,
fileName
} = {}) {
const {
snapshotState: { _rootDir },
snapshotState: {
_rootDir
},
testPath,
currentTestName,
} = this;
......@@ -85,11 +87,15 @@ function toSaveSnapshot(received, { customSnapshotsDir, fileName } = {}) {
}
function toSaveImageSnapshot(
received,
{ customSnapshotsDir, customSnapshotIdentifier } = {}
received, {
customSnapshotsDir,
customSnapshotIdentifier
} = {}
) {
const {
snapshotState: { _rootDir },
snapshotState: {
_rootDir
},
testPath,
currentTestName,
} = this;
......@@ -127,11 +133,20 @@ function toSaveImageSnapshot(
};
}
function createSnapshotDir({ customSnapshotsDir, testPath, SNAPSHOTS_DIR }) {
function createSnapshotDir({
customSnapshotsDir,
testPath,
SNAPSHOTS_DIR
}) {
return customSnapshotsDir || path.join(path.dirname(testPath), SNAPSHOTS_DIR);
}
function createFileName({ fileName, testPath, currentTestName, fileType }) {
function createFileName({
fileName,
testPath,
currentTestName,
fileType
}) {
return (
fileName ||
createSnapshotIdentifier({
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册