Skip to content

Commit ec56398

Browse files
author
John Doe
committed
refactor: intro test-fixtures project
1 parent 1cb5cb1 commit ec56398

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+2527
-88
lines changed

packages/cli/src/lib/implementation/core-config.middleware.int.test.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,12 @@ const configDirPath = path.join(
88
'..',
99
'..',
1010
'..',
11-
'mocks',
11+
'..',
12+
'..',
13+
'testing',
14+
'test-utils',
15+
'src',
16+
'lib',
1217
'fixtures',
1318
'configs',
1419
);

packages/core/mocks/fixtures/configs/code-pushup.config.js

Lines changed: 0 additions & 43 deletions
This file was deleted.

packages/core/mocks/fixtures/configs/code-pushup.config.mjs

Lines changed: 0 additions & 43 deletions
This file was deleted.

packages/core/src/lib/implementation/read-rc-file.int.test.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,12 @@ describe('readRcByPath', () => {
99
'..',
1010
'..',
1111
'..',
12-
'mocks',
12+
'..',
13+
'..',
14+
'testing',
15+
'test-utils',
16+
'src',
17+
'lib',
1318
'fixtures',
1419
'configs',
1520
);

testing/test-fixtures/README.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# test-utils
2+
3+
This library contains testing utilities, such as helper functions or fixtures.
4+
Any reusable mocks should live here.
5+
6+
More on this subject as well as all the testing strategy principles can be found on the GitHub [wiki](https://github.com/code-pushup/cli/wiki/Testing-Strategy#testing-utilities).
7+
8+
## Library utilities
9+
10+
### Mock data
11+
12+
Hardcoded mocks, often referring to a smaller configuration object, live in [`utils`](./src/lib/utils/).
13+
Dynamic mocks (functions that accept objects), referring to a bigger example of a configuration and report object, live in [`dynamic-mocks`](./src/lib/utils/dynamic-mocks/).
14+
15+
Please prefer using static mocks over dynamic ones for better readability. Dynamic mocks to be used with care when testing a snapshot after report generation or similar.
16+
17+
### Fixtures
18+
19+
Example configuration files that are to be used in integration or E2E tests live in [`configs`](./src//lib/fixtures/configs/).
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import tseslint from 'typescript-eslint';
2+
import baseConfig from '../../eslint.config.js';
3+
4+
export default tseslint.config(...baseConfig, {
5+
files: ['**/*.ts'],
6+
languageOptions: {
7+
parserOptions: {
8+
projectService: true,
9+
tsconfigRootDir: import.meta.dirname,
10+
},
11+
},
12+
});

testing/test-fixtures/package.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"name": "@code-pushup/test-fixtures",
3+
"type": "module"
4+
}

testing/test-fixtures/project.json

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"name": "test-fixtures",
3+
"$schema": "../../node_modules/nx/schemas/project-schema.json",
4+
"sourceRoot": "testing/test-fixtures/src",
5+
"projectType": "library",
6+
"targets": {
7+
"build": {},
8+
"lint": {},
9+
"nx-release-publish": {
10+
"executor": "nx:noop"
11+
}
12+
},
13+
"tags": ["scope:shared", "type:testing"]
14+
}

testing/test-fixtures/src/index.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
export * from './lib/utils/omit-report-data.js';
2+
3+
// static mocks
4+
export * from './lib/utils/commit.mock.js';
5+
export * from './lib/utils/core-config.mock.js';
6+
export * from './lib/utils/minimal-config.mock.js';
7+
export * from './lib/utils/report.mock.js';
8+
9+
// dynamic mocks
10+
export * from './lib/utils/dynamic-mocks/categories.mock.js';
11+
export * from './lib/utils/dynamic-mocks/config.mock.js';
12+
export * from './lib/utils/dynamic-mocks/eslint-audits.mock.js';
13+
export * from './lib/utils/dynamic-mocks/eslint-plugin.mock.js';
14+
export * from './lib/utils/dynamic-mocks/lighthouse-audits.mock.js';
15+
export * from './lib/utils/dynamic-mocks/lighthouse-plugin.mock.js';
16+
export * from './lib/utils/dynamic-mocks/persist-config.mock.js';
17+
export * from './lib/utils/dynamic-mocks/plugin-config.mock.js';
18+
export * from './lib/utils/dynamic-mocks/report-diff.mock.js';
19+
export * from './lib/utils/dynamic-mocks/report.mock.js';
20+
export * from './lib/utils/dynamic-mocks/runner-config.mock.js';
21+
export * from './lib/utils/dynamic-mocks/upload-config.mock.js';

packages/cli/mocks/fixtures/configs/code-pushup.config.ts renamed to testing/test-fixtures/src/lib/fixtures/configs/code-pushup.config.ts

File renamed without changes.

0 commit comments

Comments
 (0)