Home / Function/ update() — react Function Reference

update() — react Function Reference

Architecture documentation for the update() function in reporter.ts from the react codebase.

Entity Profile

Dependency Diagram

graph TD
  3231d288_7a22_d6ca_c3cc_bc226b0b74ef["update()"]
  0e6b4c6b_7bcc_eac7_3f6d_ff9990f24223["reporter.ts"]
  3231d288_7a22_d6ca_c3cc_bc226b0b74ef -->|defined in| 0e6b4c6b_7bcc_eac7_3f6d_ff9990f24223
  4b902db8_39ff_6c09_0a25_3a6bd51d0bf7["runTestCommand()"]
  4b902db8_39ff_6c09_0a25_3a6bd51d0bf7 -->|calls| 3231d288_7a22_d6ca_c3cc_bc226b0b74ef
  6f987440_694d_ff09_5b9e_6bb4093380cc["onChange()"]
  6f987440_694d_ff09_5b9e_6bb4093380cc -->|calls| 3231d288_7a22_d6ca_c3cc_bc226b0b74ef
  style 3231d288_7a22_d6ca_c3cc_bc226b0b74ef fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

compiler/packages/snap/src/reporter.ts lines 78–136

export async function update(results: TestResults): Promise<void> {
  let deleted = 0;
  let updated = 0;
  let created = 0;
  const failed = [];
  for (const [basename, result] of results) {
    if (result.unexpectedError != null) {
      console.log(
        chalk.red.inverse.bold(' FAILED ') + ' ' + chalk.dim(basename),
      );
      failed.push([basename, result.unexpectedError]);
    } else if (result.actual == null) {
      // Input was deleted but the expect file still existed, remove it
      console.log(
        chalk.red.inverse.bold(' REMOVE ') + ' ' + chalk.dim(basename),
      );
      try {
        fs.unlinkSync(result.outputPath);
        console.log(' remove  ' + result.outputPath);
        deleted++;
      } catch (e) {
        console.error(
          '[Snap tester error]: failed to remove ' + result.outputPath,
        );
        failed.push([basename, result.unexpectedError]);
      }
    } else if (result.actual !== result.expected) {
      // Expected output has changed
      console.log(
        chalk.blue.inverse.bold(' UPDATE ') + ' ' + chalk.dim(basename),
      );
      try {
        fs.writeFileSync(result.outputPath, result.actual, 'utf8');
      } catch (e) {
        if (e?.code === 'ENOENT') {
          // May have failed to create nested dir, so make a directory and retry
          fs.mkdirSync(path.dirname(result.outputPath), {recursive: true});
          fs.writeFileSync(result.outputPath, result.actual, 'utf8');
        }
      }
      if (result.expected == null) {
        created++;
      } else {
        updated++;
      }
    } else {
      // Expected output is current
      console.log(
        chalk.green.inverse.bold('  OKAY  ') + ' ' + chalk.dim(basename),
      );
    }
  }
  console.log(
    `${deleted} Deleted, ${created} Created, ${updated} Updated, ${failed.length} Failed`,
  );
  for (const [basename, errorMsg] of failed) {
    console.log(`${chalk.red.bold('Fail:')} ${basename}\n${errorMsg}`);
  }
}

Domain

Subdomains

Frequently Asked Questions

What does update() do?
update() is a function in the react codebase, defined in compiler/packages/snap/src/reporter.ts.
Where is update() defined?
update() is defined in compiler/packages/snap/src/reporter.ts at line 78.
What calls update()?
update() is called by 2 function(s): onChange, runTestCommand.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free