transformFixture() — react Function Reference
Architecture documentation for the transformFixture() function in runner-worker.ts from the react codebase.
Entity Profile
Dependency Diagram
graph TD 5e39198b_b086_5261_de7a_7fc49349ecb6["transformFixture()"] 49c99dfe_ec8f_3cb7_769b_a3b735b82b82["runner-worker.ts"] 5e39198b_b086_5261_de7a_7fc49349ecb6 -->|defined in| 49c99dfe_ec8f_3cb7_769b_a3b735b82b82 4b902db8_39ff_6c09_0a25_3a6bd51d0bf7["runTestCommand()"] 4b902db8_39ff_6c09_0a25_3a6bd51d0bf7 -->|calls| 5e39198b_b086_5261_de7a_7fc49349ecb6 8b079862_93aa_0084_8b1a_0473b6ef4307["runFixtures()"] 8b079862_93aa_0084_8b1a_0473b6ef4307 -->|calls| 5e39198b_b086_5261_de7a_7fc49349ecb6 c681c19b_5647_fd2d_e194_c12d81c722da["getBasename()"] 5e39198b_b086_5261_de7a_7fc49349ecb6 -->|calls| c681c19b_5647_fd2d_e194_c12d81c722da bf1ae175_0a76_7aa4_ad79_8ea2236e3b0a["isExpectError()"] 5e39198b_b086_5261_de7a_7fc49349ecb6 -->|calls| bf1ae175_0a76_7aa4_ad79_8ea2236e3b0a 7b109a5c_c041_536b_2f9e_eb9ea6d3da19["compile()"] 5e39198b_b086_5261_de7a_7fc49349ecb6 -->|calls| 7b109a5c_c041_536b_2f9e_eb9ea6d3da19 81e68010_37f1_e748_b452_7cc28e601cad["runSprout()"] 5e39198b_b086_5261_de7a_7fc49349ecb6 -->|calls| 81e68010_37f1_e748_b452_7cc28e601cad 84944777_d7ed_3ce5_35bb_d71af47d5891["writeOutputToString()"] 5e39198b_b086_5261_de7a_7fc49349ecb6 -->|calls| 84944777_d7ed_3ce5_35bb_d71af47d5891 style 5e39198b_b086_5261_de7a_7fc49349ecb6 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
compiler/packages/snap/src/runner-worker.ts lines 165–237
export async function transformFixture(
fixture: TestFixture,
compilerVersion: number,
shouldLog: boolean,
includeEvaluator: boolean,
): Promise<TestResult> {
const {input, snapshot: expected, snapshotPath: outputPath} = fixture;
const basename = getBasename(fixture);
const expectError = isExpectError(fixture);
// Input will be null if the input file did not exist, in which case the output file
// is stale
if (input === null) {
return {
outputPath,
actual: null,
expected,
unexpectedError: null,
};
}
const {compileResult, error} = await compile(
input,
fixture.fixturePath,
compilerVersion,
shouldLog,
includeEvaluator,
);
let unexpectedError: string | null = null;
if (expectError) {
if (error === null) {
unexpectedError = `Expected an error to be thrown for fixture: \`${basename}\`, remove the 'error.' prefix if an error is not expected.`;
}
} else {
if (error !== null) {
unexpectedError = `Expected fixture \`${basename}\` to succeed but it failed with error:\n\n${error}`;
} else if (compileResult == null) {
unexpectedError = `Expected output for fixture \`${basename}\`.`;
}
}
const snapOutput: string | null = compileResult?.forgetOutput ?? null;
let sproutOutput: string | null = null;
if (compileResult?.evaluatorCode != null) {
const sproutResult = runSprout(
compileResult.evaluatorCode.original,
compileResult.evaluatorCode.forget,
);
if (sproutResult.kind === 'invalid') {
unexpectedError ??= '';
unexpectedError += `\n\n${sproutResult.value}`;
} else {
sproutOutput = sproutResult.value;
}
} else if (!includeEvaluator && expected != null) {
sproutOutput = expected.split('\n### Eval output\n')[1];
}
const actualOutput = writeOutputToString(
input,
snapOutput,
sproutOutput,
compileResult?.logs ?? null,
error,
);
return {
outputPath,
actual: actualOutput,
expected,
unexpectedError,
};
}
Domain
Subdomains
Defined In
Called By
Source
Frequently Asked Questions
What does transformFixture() do?
transformFixture() is a function in the react codebase, defined in compiler/packages/snap/src/runner-worker.ts.
Where is transformFixture() defined?
transformFixture() is defined in compiler/packages/snap/src/runner-worker.ts at line 165.
What does transformFixture() call?
transformFixture() calls 5 function(s): compile, getBasename, isExpectError, runSprout, writeOutputToString.
What calls transformFixture()?
transformFixture() is called by 2 function(s): runFixtures, runTestCommand.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free