Skip to content

Commit

Permalink
upgrade(jest) - upgrade jest to v29, replace jest aspect with jest te…
Browse files Browse the repository at this point in the history
…ster component, deprecate jest aspect (#9015)
  • Loading branch information
GiladShoham authored Jul 16, 2024
1 parent e05337e commit 81aad43
Show file tree
Hide file tree
Showing 43 changed files with 428 additions and 455 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
// Override the Jest config to ignore transpiling from specific folders
// See the base Jest config: https://bit.cloud/teambit/react/react/~code/jest/jest.config.js

const { jestConfig } = require('@teambit/react.react-env');
// const { esmConfig } = require('@teambit/react.jest.react-jest');
// uncomment the line below and install the package if you want to use this function
// const {
// generateNodeModulesPattern,
// } = require('@teambit/dependencies.modules.packages-excluder');
// const packagesToExclude = ['@my-org', 'my-package-name'];
module.exports = {
...jestConfig,
// transformIgnorePatterns: [
// '^.+\.module\.(css|sass|scss)$',
// generateNodeModulesPattern({ packages: packagesToExclude }),
// ],
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"extends": "@teambit/react.react-env/config/tsconfig.json",
"exclude": [
"artifacts",
"public",
"dist",
"node_modules",
"package.json",
"**/*.cjs"
],
"include": ["**/*", "**/*.json"]
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
import {
TypescriptTask,
} from '@teambit/typescript.typescript-compiler';
import { resolve } from 'path';
import { Pipeline } from "@teambit/builder";
import { Tester, TesterContext } from '@teambit/tester';
import { EnvHandler } from '@teambit/envs';
import { Component } from '@teambit/component';
import { ReactEnv } from '@teambit/react.react-env';
import type { ReactEnvInterface } from '@teambit/react.react-env';
import { JestTask, JestTester } from '@teambit/defender.jest-tester';

function generateResolveSpecPathsFunc(pattern: string) {
return (component: Component, context: TesterContext) => {
const componentPatternValue = context.patterns.get(component);
if (!componentPatternValue) return [] as string[];
const [, patternEntry] = componentPatternValue;
return [resolve(patternEntry.componentDir, pattern)]
}
}

export class CustomJestResolveTesterEnv extends ReactEnv implements ReactEnvInterface {
/**
* name of the environment. used for friendly mentions across bit.
*/
name = 'custom-jest-resolve-tester';

/**
* icon for the env. use this to build a more friendly env.
* uses react by default.
*/
icon = 'https://static.bit.dev/extensions-icons/react.svg';

protected jestConfigPath = require.resolve('./config/jest.config');
protected tsconfigPath = require.resolve('./config/tsconfig.json');

tester(): EnvHandler<Tester> {
return JestTester.from({
config: this.jestConfigPath,
resolveSpecPaths: generateResolveSpecPathsFunc('**/*.custom-pattern.spec.+(js|ts|jsx|tsx)')
});
}

build() {
return Pipeline.from([
TypescriptTask.from({
tsconfig: this.tsconfigPath,
}),
JestTask.from({
config: this.jestConfigPath,
resolveSpecPaths: generateResolveSpecPathsFunc('**/*.custom-pattern.spec.+(js|ts|jsx|tsx)')
})
]);
}
}

export default new CustomJestResolveTesterEnv();

This file was deleted.

7 changes: 3 additions & 4 deletions e2e/fixtures/extensions/custom-jest-resolve-env/index.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import { CustomJestResolveEnv } from './custom-jest-resolve-env.aspect';
import { CustomJestResolveTesterEnv } from './custom-jest-resolve-env.bit-env';

export type { CustomJestResolveEnvMain } from './custom-jest-resolve-env.main.runtime';
export default CustomJestResolveEnv;
export { CustomJestResolveEnv };
export default CustomJestResolveTesterEnv;
export { CustomJestResolveTesterEnv };

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
// Override the Jest config to ignore transpiling from specific folders
// See the base Jest config: https://bit.cloud/teambit/react/react/~code/jest/jest.config.js

const { jestConfig } = require('@teambit/react.react-env');
// const { esmConfig } = require('@teambit/react.jest.react-jest');
// uncomment the line below and install the package if you want to use this function
// const {
// generateNodeModulesPattern,
// } = require('@teambit/dependencies.modules.packages-excluder');
// const packagesToExclude = ['@my-org', 'my-package-name'];
module.exports = {
...jestConfig,
transformIgnorePatterns: [
someUndefinedFunc(),
],
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"extends": "@teambit/react.react-env/config/tsconfig.json",
"exclude": [
"artifacts",
"public",
"dist",
"node_modules",
"package.json",
"**/*.cjs"
],
"include": ["**/*", "**/*.json"]
}
4 changes: 4 additions & 0 deletions e2e/fixtures/extensions/invalid-jest-config-env/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import { InvalidJestConfigTesterEnv } from './invalid-jest-config.bit-env';

export default InvalidJestConfigTesterEnv;
export { InvalidJestConfigTesterEnv };
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
import {
TypescriptTask,
} from '@teambit/typescript.typescript-compiler';
import { resolve } from 'path';
import { Pipeline } from "@teambit/builder";
import { Tester, TesterContext } from '@teambit/tester';
import { EnvHandler } from '@teambit/envs';
import { Component } from '@teambit/component';
import { ReactEnv } from '@teambit/react.react-env';
import type { ReactEnvInterface } from '@teambit/react.react-env';
import { JestTask, JestTester } from '@teambit/defender.jest-tester';

function generateResolveSpecPathsFunc(pattern: string) {
return (component: Component, context: TesterContext) => {
const componentPatternValue = context.patterns.get(component);
if (!componentPatternValue) return [] as string[];
const [, patternEntry] = componentPatternValue;
return [resolve(patternEntry.componentDir, pattern)]
}
}

export class InvalidJestConfigTesterEnv extends ReactEnv implements ReactEnvInterface {
/**
* name of the environment. used for friendly mentions across bit.
*/
name = 'invalid-jest-config-tester';

/**
* icon for the env. use this to build a more friendly env.
* uses react by default.
*/
icon = 'https://static.bit.dev/extensions-icons/react.svg';

protected jestConfigPath = require.resolve('./config/jest.config');
protected tsconfigPath = require.resolve('./config/tsconfig.json');

tester(): EnvHandler<Tester> {
return JestTester.from({
config: this.jestConfigPath,
});
}

build() {
return Pipeline.from([
TypescriptTask.from({
tsconfig: this.tsconfigPath,
}),
JestTask.from({
config: this.jestConfigPath,
})
]);
}
}

export default new InvalidJestConfigTesterEnv();
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
// Override the Jest config to ignore transpiling from specific folders
// See the base Jest config: https://bit.cloud/teambit/react/react/~code/jest/jest.config.js

const { jestConfig } = require('@teambit/react.react-env');
// const { esmConfig } = require('@teambit/react.jest.react-jest');
// uncomment the line below and install the package if you want to use this function
// const {
// generateNodeModulesPattern,
// } = require('@teambit/dependencies.modules.packages-excluder');
// const packagesToExclude = ['@my-org', 'my-package-name'];
module.exports = {
...jestConfig,
// transformIgnorePatterns: [
// '^.+\.module\.(css|sass|scss)$',
// generateNodeModulesPattern({ packages: packagesToExclude }),
// ],
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"extends": "@teambit/react.react-env/config/tsconfig.json",
"exclude": [
"artifacts",
"public",
"dist",
"node_modules",
"package.json",
"**/*.cjs"
],
"include": ["**/*", "**/*.json"]
}
7 changes: 3 additions & 4 deletions e2e/fixtures/extensions/multi-jest-testers-env/index.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import { MultiJestTestersEnv } from './multi-jest-testers-env.aspect';
import { MultiJestTesterEnv } from './multi-jest-tester-env.bit-env';

export type { MultiJestTestersEnvMain } from './multi-jest-testers-env.main.runtime';
export default MultiJestTestersEnv;
export { MultiJestTestersEnv };
export default MultiJestTesterEnv;
export { MultiJestTesterEnv };
10 changes: 0 additions & 10 deletions e2e/fixtures/extensions/multi-jest-testers-env/jest/jest.config.js

This file was deleted.

Loading

0 comments on commit 81aad43

Please sign in to comment.