Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions eslint.config.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import nxEslintPlugin from '@nx/eslint-plugin';
import jestExtendedPlugin from 'eslint-plugin-jest-extended';
import jsoncParser from 'jsonc-eslint-parser';
import tseslint from 'typescript-eslint';
import node from '@code-pushup/eslint-config/node.js';
Expand Down Expand Up @@ -84,13 +85,19 @@ export default tseslint.config(
},
{
files: ['**/*.test.ts', '**/*.spec.ts'],
plugins: { 'jest-extended': jestExtendedPlugin },
rules: {
'vitest/consistent-test-filename': [
'warn',
{
pattern: String.raw`.*\.(bench|type|unit|int|e2e)\.test\.[tj]sx?$`,
},
],
'jest-extended/prefer-to-be-array': 'warn',
'jest-extended/prefer-to-be-false': 'warn',
'jest-extended/prefer-to-be-object': 'warn',
'jest-extended/prefer-to-be-true': 'warn',
'jest-extended/prefer-to-have-been-called-once': 'warn',
},
},
{
Expand Down
43 changes: 43 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@
"eslint-import-resolver-typescript": "^3.6.1",
"eslint-plugin-functional": "^7.1.0",
"eslint-plugin-import": "^2.31.0",
"eslint-plugin-jest-extended": "^3.0.0",
"eslint-plugin-jest-formatting": "^3.1.0",
"eslint-plugin-n": "^17.15.0",
"eslint-plugin-promise": "^7.2.1",
Expand All @@ -99,6 +100,7 @@
"globals": "^15.13.0",
"husky": "^8.0.0",
"inquirer": "^9.3.7",
"jest-extended": "^6.0.0",
"jsdom": "~24.0.0",
"jsonc-eslint-parser": "^2.4.0",
"knip": "^5.33.3",
Expand Down
10 changes: 5 additions & 5 deletions packages/ci/src/lib/issues.unit.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ describe('issues comparison', () => {
},
},
),
).toBe(true);
).toBeTrue();
});

it('should not match issues from different audits', () => {
Expand Down Expand Up @@ -63,7 +63,7 @@ describe('issues comparison', () => {
},
},
),
).toBe(false);
).toBeFalse();
});

it('should match issues based on adjusted line', () => {
Expand Down Expand Up @@ -97,7 +97,7 @@ describe('issues comparison', () => {
},
},
),
).toBe(true);
).toBeTrue();
});

it('should match issues from renamed files', () => {
Expand All @@ -124,7 +124,7 @@ describe('issues comparison', () => {
},
},
),
).toBe(true);
).toBeTrue();
});

it('should match issues based on adjusted line range', () => {
Expand Down Expand Up @@ -165,7 +165,7 @@ describe('issues comparison', () => {
},
},
),
).toBe(true);
).toBeTrue();
});
});

Expand Down
6 changes: 3 additions & 3 deletions packages/ci/src/lib/monorepo/handlers/npm.unit.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ describe('npmHandler', () => {
},
MEMFS_VOLUME,
);
await expect(npmHandler.isConfigured(options)).resolves.toBe(true);
await expect(npmHandler.isConfigured(options)).resolves.toBeTrue();
});

it('should NOT detect NPM workspaces when "workspaces" not set in package.json', async () => {
Expand All @@ -41,7 +41,7 @@ describe('npmHandler', () => {
},
MEMFS_VOLUME,
);
await expect(npmHandler.isConfigured(options)).resolves.toBe(false);
await expect(npmHandler.isConfigured(options)).resolves.toBeFalse();
});

it("should NOT detect NPM workspaces when package-lock.json doesn't exist", async () => {
Expand All @@ -55,7 +55,7 @@ describe('npmHandler', () => {
},
MEMFS_VOLUME,
);
await expect(npmHandler.isConfigured(options)).resolves.toBe(false);
await expect(npmHandler.isConfigured(options)).resolves.toBeFalse();
});
});

Expand Down
6 changes: 3 additions & 3 deletions packages/ci/src/lib/monorepo/handlers/nx.unit.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ describe('nxHandler', () => {
stdout: 'NX Report complete - copy this into the issue template',
} as utils.ProcessResult);

await expect(nxHandler.isConfigured(options)).resolves.toBe(true);
await expect(nxHandler.isConfigured(options)).resolves.toBeTrue();
});

it("should NOT detect Nx when nx.json doesn't exist", async () => {
Expand All @@ -33,7 +33,7 @@ describe('nxHandler', () => {
code: 0,
} as utils.ProcessResult);

await expect(nxHandler.isConfigured(options)).resolves.toBe(false);
await expect(nxHandler.isConfigured(options)).resolves.toBeFalse();
});

it('should NOT detect Nx when `nx report` fails with non-zero exit code', async () => {
Expand All @@ -43,7 +43,7 @@ describe('nxHandler', () => {
stderr: 'Error: ValueExpected in nx.json',
} as utils.ProcessResult);

await expect(nxHandler.isConfigured(options)).resolves.toBe(false);
await expect(nxHandler.isConfigured(options)).resolves.toBeFalse();
});
});

Expand Down
6 changes: 3 additions & 3 deletions packages/ci/src/lib/monorepo/handlers/pnpm.unit.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ describe('pnpmHandler', () => {
},
MEMFS_VOLUME,
);
await expect(pnpmHandler.isConfigured(options)).resolves.toBe(true);
await expect(pnpmHandler.isConfigured(options)).resolves.toBeTrue();
});

it("should NOT detect PNPM workspace when pnpm-workspace.yaml doesn't exist", async () => {
Expand All @@ -39,7 +39,7 @@ describe('pnpmHandler', () => {
},
MEMFS_VOLUME,
);
await expect(pnpmHandler.isConfigured(options)).resolves.toBe(false);
await expect(pnpmHandler.isConfigured(options)).resolves.toBeFalse();
});

it("should NOT detect PNPM workspace when root package.json doesn't exist", async () => {
Expand All @@ -52,7 +52,7 @@ describe('pnpmHandler', () => {
},
MEMFS_VOLUME,
);
await expect(pnpmHandler.isConfigured(options)).resolves.toBe(false);
await expect(pnpmHandler.isConfigured(options)).resolves.toBeFalse();
});
});

Expand Down
6 changes: 3 additions & 3 deletions packages/ci/src/lib/monorepo/handlers/turbo.unit.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ describe('turboHandler', () => {
},
MEMFS_VOLUME,
);
await expect(turboHandler.isConfigured(options)).resolves.toBe(true);
await expect(turboHandler.isConfigured(options)).resolves.toBeTrue();
});

it("should NOT detect Turborepo when turbo.json doesn't exist", async () => {
Expand All @@ -48,7 +48,7 @@ describe('turboHandler', () => {
},
MEMFS_VOLUME,
);
await expect(turboHandler.isConfigured(options)).resolves.toBe(false);
await expect(turboHandler.isConfigured(options)).resolves.toBeFalse();
});

it("should NOT detect Turborepo when turbo.json doesn't include code-pushup task", async () => {
Expand All @@ -72,7 +72,7 @@ describe('turboHandler', () => {
},
MEMFS_VOLUME,
);
await expect(turboHandler.isConfigured(options)).resolves.toBe(false);
await expect(turboHandler.isConfigured(options)).resolves.toBeFalse();
});
});

Expand Down
6 changes: 3 additions & 3 deletions packages/ci/src/lib/monorepo/handlers/yarn.unit.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ describe('yarnHandler', () => {
},
MEMFS_VOLUME,
);
await expect(yarnHandler.isConfigured(options)).resolves.toBe(true);
await expect(yarnHandler.isConfigured(options)).resolves.toBeTrue();
});

it('should NOT detect Yarn workspaces when "workspaces" not set in package.json', async () => {
Expand All @@ -43,7 +43,7 @@ describe('yarnHandler', () => {
},
MEMFS_VOLUME,
);
await expect(yarnHandler.isConfigured(options)).resolves.toBe(false);
await expect(yarnHandler.isConfigured(options)).resolves.toBeFalse();
});

it("should NOT detect Yarn workspaces when yarn.lock doesn't exist", async () => {
Expand All @@ -57,7 +57,7 @@ describe('yarnHandler', () => {
},
MEMFS_VOLUME,
);
await expect(yarnHandler.isConfigured(options)).resolves.toBe(false);
await expect(yarnHandler.isConfigured(options)).resolves.toBeFalse();
});
});

Expand Down
32 changes: 16 additions & 16 deletions packages/ci/src/lib/monorepo/packages.unit.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,7 @@ describe('hasWorkspacesEnabled', () => {
{ 'package.json': pkgJsonContent({ name: 'example', private: true }) },
MEMFS_VOLUME,
);
await expect(hasWorkspacesEnabled(MEMFS_VOLUME)).resolves.toBe(false);
await expect(hasWorkspacesEnabled(MEMFS_VOLUME)).resolves.toBeFalse();
});

it('should identify as NOT enabled if `"private": true` missing in root package.json', async () => {
Expand All @@ -241,7 +241,7 @@ describe('hasWorkspacesEnabled', () => {
},
MEMFS_VOLUME,
);
await expect(hasWorkspacesEnabled(MEMFS_VOLUME)).resolves.toBe(false);
await expect(hasWorkspacesEnabled(MEMFS_VOLUME)).resolves.toBeFalse();
});

it('should identify as enabled if private and workspaces array set in root package.json', async () => {
Expand All @@ -254,7 +254,7 @@ describe('hasWorkspacesEnabled', () => {
},
MEMFS_VOLUME,
);
await expect(hasWorkspacesEnabled(MEMFS_VOLUME)).resolves.toBe(true);
await expect(hasWorkspacesEnabled(MEMFS_VOLUME)).resolves.toBeTrue();
});

it('should identify as enabled if private and workspaces object set in root package.json', async () => {
Expand All @@ -270,7 +270,7 @@ describe('hasWorkspacesEnabled', () => {
},
MEMFS_VOLUME,
);
await expect(hasWorkspacesEnabled(MEMFS_VOLUME)).resolves.toBe(true);
await expect(hasWorkspacesEnabled(MEMFS_VOLUME)).resolves.toBeTrue();
});
});

Expand Down Expand Up @@ -313,25 +313,25 @@ describe('hasScript', () => {
{ scripts: { 'code-pushup': 'code-pushup --no-progress' } },
'code-pushup',
),
).toBe(true);
).toBeTrue();
});

it('should return false if script not in package.json "scripts"', () => {
expect(hasScript({}, 'code-pushup')).toBe(false);
expect(hasScript({}, 'code-pushup')).toBeFalse();
});
});

describe('hasDependency', () => {
it('should return true if package name in "dependencies"', () => {
expect(hasDependency({ dependencies: { react: '^19.0.0' } }, 'react')).toBe(
true,
);
expect(
hasDependency({ dependencies: { react: '^19.0.0' } }, 'react'),
).toBeTrue();
});

it('should return true if package name in "devDependencies"', () => {
expect(hasDependency({ devDependencies: { nx: '20.1.3' } }, 'nx')).toBe(
true,
);
expect(
hasDependency({ devDependencies: { nx: '20.1.3' } }, 'nx'),
).toBeTrue();
});

it('should return false if package name is neither in "dependencies" nor "devDependencies"', () => {
Expand All @@ -343,7 +343,7 @@ describe('hasDependency', () => {
},
'svelte',
),
).toBe(false);
).toBeFalse();
});
});

Expand All @@ -353,15 +353,15 @@ describe('hasCodePushUpDependency', () => {
hasCodePushUpDependency({
devDependencies: { '@code-pushup/cli': '^0.55.0' },
}),
).toBe(true);
).toBeTrue();
});

it('should return true if @code-pushup/cli in "dependencies"', () => {
expect(
hasCodePushUpDependency({
dependencies: { '@code-pushup/cli': 'latest' },
}),
).toBe(true);
).toBeTrue();
});

it('should return false if @code-pushup/cli is neither in "dependencies" nor "devDependencies"', () => {
Expand All @@ -372,6 +372,6 @@ describe('hasCodePushUpDependency', () => {
'@code-pushup/utils': 'latest',
},
}),
).toBe(false);
).toBeFalse();
});
});
Loading
Loading