1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- /*!
- * This file contains Jest API usages for situations where it is difficult to determine which API should be used.
- *
- * An example of this is determining the version of Jest, which is retrieved via the `getVersion` API.
- * It's difficult at compile & runtime to determine:
- * 1. If such an API exists
- * 2. If it's typings are the same across all versions of Jest
- * 3. If there are variants of this API, which one to use and when
- *
- * Short of probing the directory where a user keeps their modules (e.g. `node_modules/`), we need to make a "best
- * guess" at things. This file is meant to only contain functions for these types of scenarios. It is expected that this
- * file be added to sparingly.
- */
- import type { TransformedSource } from '@jest/transform';
- import type { Config } from '@jest/types';
- import * as d from '@stencil/core/internal';
- /**
- * For Stencil's purposes, an instance of a Jest/Puppeteer environment only needs to have a handful of functions.
- * This does not mean that Jest does not require additional functions on an environment. However, those requirements may
- * change from version-to-version of Jest. Stencil overrides the functions below, and with our current design of
- * integrating with Jest, require them to be overridden.
- */
- export type JestPuppeteerEnvironment = {
- setup(): Promise<void>;
- teardown(): Promise<void>;
- getVmContext(): any | null;
- };
- /**
- * Helper type for describing a function that returns a {@link JestPuppeteerEnvironment}.
- */
- export type JestPuppeteerEnvironmentConstructor = new (...args: any[]) => JestPuppeteerEnvironment;
- export type JestPreprocessor = {
- process(sourceText: string, sourcePath: string, ...args: any[]): string | TransformedSource;
- getCacheKey(sourceText: string, sourcePath: string, ...args: any[]): string;
- };
- /**
- * For Stencil's purposes, an instance of a Jest `TestRunner` only needs to have an async `runTests` function.
- * This does not mean that Jest does not require additional functions. However, those requirements may change from
- * version-to-version of Jest. Stencil overrides the `runTests` function, and with our current design of integrating
- * with Jest, require it to be overridden (for test filtering and supporting screenshot testing.
- */
- export type JestTestRunner = {
- runTests(...args: any[]): Promise<any>;
- };
- /**
- * Helper type for describing a function that returns a {@link JestTestRunner}.
- */
- export type JestTestRunnerConstructor = new (...args: any[]) => JestTestRunner;
- /**
- * This type serves as an alias for a function that invokes the Jest CLI.
- *
- * This alias serves two purposes:
- * 1. It allows Stencil to have a single source of truth for the return type(s) on {@link JestFacade} (and its
- * implementations)
- * 2. It prevents TypeScript from expanding Stencil type declarations in the generated `.d.ts` file. This is necessary
- * as TypeScript will make assumptions about where it can dynamically resolve Stencil typings from, which are not
- * always necessarily true when `tsconfig#paths` are used.
- */
- export type JestCliRunner = (config: d.ValidatedConfig, e2eEnv: d.E2EProcessEnv) => Promise<boolean>;
- /**
- * This type serves as an alias for a function that invokes Stencil's Screenshot runner.
- *
- * This alias serves two purposes:
- * 1. It allows Stencil to have a single source of truth for the return type(s) on {@link JestFacade} (and its
- * implementations)
- * 2. It prevents TypeScript from expanding Stencil type declarations in the generated `.d.ts` file. This is necessary
- * as TypeScript will make assumptions about where it can dynamically resolve Stencil typings from, which are not
- * always necessarily true when `tsconfig#paths` are used.
- */
- export type JestScreenshotRunner = (config: d.ValidatedConfig, e2eEnv: d.E2EProcessEnv) => Promise<boolean>;
- /**
- * This type serves as an alias for the type representing the initial configuration for Jest.
- * This alias serves two purposes:
- * 1. It allows Stencil to have a single source of truth for the return type(s) on {@link JestFacade} (and its
- * implementations)
- * 2. It prevents TypeScript from expanding Jest typings in the generated `.d.ts` file. This is necessary as TypeScript
- * will make assumptions about where it can dynamically resolve Jest typings from, which do not necessarily hold
- * true for every type of Stencil project directory structure.
- */
- export type JestPresetConfig = Config.InitialOptions;
- /**
- * Get the current major version of Jest that Stencil reconciles
- *
- * @returns the major version of Jest.
- */
- export declare const getJestMajorVersion: () => string;
|