Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
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
3 changes: 3 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,7 +85,9 @@ export default tseslint.config(
},
{
files: ['**/*.test.ts', '**/*.spec.ts'],
plugins: { 'jest-extended': jestExtendedPlugin },
rules: {
...jestExtendedPlugin.configs['flat/all'].rules,
'vitest/consistent-test-filename': [
'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();
});
});
3 changes: 2 additions & 1 deletion packages/ci/tsconfig.test.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
"src/**/*.test.tsx",
"src/**/*.test.js",
"src/**/*.test.jsx",
"src/**/*.d.ts"
"src/**/*.d.ts",
"../../testing/test-setup/src/vitest.d.ts"
]
}
Loading
Loading