Home / File/ NoCapitalizedCallsRule-test.ts — react Source File

NoCapitalizedCallsRule-test.ts — react Source File

Architecture documentation for NoCapitalizedCallsRule-test.ts, a typescript file in the react codebase. 7 imports, 0 dependents.

Entity Profile

Dependency Diagram

graph LR
  7f76a9cf_909b_bef1_2557_38a00b1190af["NoCapitalizedCallsRule-test.ts"]
  799656f0_feaf_2c82_77fc_4a08283ea146["shared-utils.ts"]
  7f76a9cf_909b_bef1_2557_38a00b1190af --> 799656f0_feaf_2c82_77fc_4a08283ea146
  f9d93ee9_a1c8_932c_1dae_abe7839e287e["normalizeIndent"]
  7f76a9cf_909b_bef1_2557_38a00b1190af --> f9d93ee9_a1c8_932c_1dae_abe7839e287e
  1ce82843_86af_f383_f6a3_ab648fb0e6be["makeTestCaseError"]
  7f76a9cf_909b_bef1_2557_38a00b1190af --> 1ce82843_86af_f383_f6a3_ab648fb0e6be
  7cb0395e_ec02_facf_a171_f9c7ce1a86b7["testRule"]
  7f76a9cf_909b_bef1_2557_38a00b1190af --> 7cb0395e_ec02_facf_a171_f9c7ce1a86b7
  cc8eb92a_b0c5_c461_8a5e_7435585bbc6e["ReactCompilerRule.ts"]
  7f76a9cf_909b_bef1_2557_38a00b1190af --> cc8eb92a_b0c5_c461_8a5e_7435585bbc6e
  c2fb1111_dc32_da0a_d43a_b38b8d13f4e9["allRules"]
  7f76a9cf_909b_bef1_2557_38a00b1190af --> c2fb1111_dc32_da0a_d43a_b38b8d13f4e9
  f1417319_0940_9839_f3b2_304147ce4f9d["CompilerError"]
  7f76a9cf_909b_bef1_2557_38a00b1190af --> f1417319_0940_9839_f3b2_304147ce4f9d
  style 7f76a9cf_909b_bef1_2557_38a00b1190af fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

/**
 * Copyright (c) Meta Platforms, Inc. and affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
import {
  ErrorCategory,
  getRuleForCategory,
} from 'babel-plugin-react-compiler/src/CompilerError';
import {normalizeIndent, makeTestCaseError, testRule} from './shared-utils';
import {allRules} from '../src/rules/ReactCompilerRule';

testRule(
  'no-capitalized-calls',
  allRules[getRuleForCategory(ErrorCategory.CapitalizedCalls).name].rule,
  {
    valid: [],
    invalid: [
      {
        name: 'Simple violation',
        code: normalizeIndent`
        import Child from './Child';
        function Component() {
          return <>
            {Child()}
          </>;
        }
      `,
        errors: [
          makeTestCaseError(
            'Capitalized functions are reserved for components',
          ),
        ],
      },
      {
        name: 'Method call violation',
        code: normalizeIndent`
        import myModule from './MyModule';
        function Component() {
          return <>
            {myModule.Child()}
          </>;
        }
      `,
        errors: [
          makeTestCaseError(
            'Capitalized functions are reserved for components',
          ),
        ],
      },
      {
        name: 'Multiple diagnostics within the same function are surfaced',
        code: normalizeIndent`
        import Child1 from './Child1';
        import MyModule from './MyModule';
        function Component() {
          return <>
            {Child1()}
            {MyModule.Child2()}
          </>;
        }`,
        errors: [
          makeTestCaseError(
            'Capitalized functions are reserved for components',
          ),
        ],
      },
    ],
  },
);

Domain

Frequently Asked Questions

What does NoCapitalizedCallsRule-test.ts do?
NoCapitalizedCallsRule-test.ts is a source file in the react codebase, written in typescript. It belongs to the BabelCompiler domain.
What does NoCapitalizedCallsRule-test.ts depend on?
NoCapitalizedCallsRule-test.ts imports 7 module(s): CompilerError, ReactCompilerRule.ts, allRules, makeTestCaseError, normalizeIndent, shared-utils.ts, testRule.
Where is NoCapitalizedCallsRule-test.ts in the architecture?
NoCapitalizedCallsRule-test.ts is located at compiler/packages/eslint-plugin-react-compiler/__tests__/NoCapitalizedCallsRule-test.ts (domain: BabelCompiler, directory: compiler/packages/eslint-plugin-react-compiler/__tests__).

Analyze Your Own Codebase

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

Try Supermodel Free