first commit
Security: Sync from Public / sync-from-public (push) Has been cancelled
Test: Benchmark Nightly / build (push) Has been cancelled
Test: Benchmark Nightly / Notify Cats on failure (push) Has been cancelled
CI: Python / Checks (push) Has been cancelled
Test: Evals Python / Workflow Comparison Python (push) Has been cancelled
Util: Check Docs URLs / check-docs-urls (push) Has been cancelled
Test: Visual Storybook / Cloudflare Pages (push) Has been cancelled
Test: E2E Performance / build-and-test-performance (push) Has been cancelled
Test: Workflows Nightly / Run Workflow Tests (push) Has been cancelled
Util: Cleanup CI Docker Images / Delete stale CI images (push) Has been cancelled
Test: Benchmark Destroy Env / build (push) Has been cancelled
Util: Update Node Popularity / update-popularity (push) Has been cancelled
Test: E2E Coverage Weekly / Coverage Tests (push) Has been cancelled
Security: Sync from Public / sync-from-public (push) Has been cancelled
Test: Benchmark Nightly / build (push) Has been cancelled
Test: Benchmark Nightly / Notify Cats on failure (push) Has been cancelled
CI: Python / Checks (push) Has been cancelled
Test: Evals Python / Workflow Comparison Python (push) Has been cancelled
Util: Check Docs URLs / check-docs-urls (push) Has been cancelled
Test: Visual Storybook / Cloudflare Pages (push) Has been cancelled
Test: E2E Performance / build-and-test-performance (push) Has been cancelled
Test: Workflows Nightly / Run Workflow Tests (push) Has been cancelled
Util: Cleanup CI Docker Images / Delete stale CI images (push) Has been cancelled
Test: Benchmark Destroy Env / build (push) Has been cancelled
Util: Update Node Popularity / update-popularity (push) Has been cancelled
Test: E2E Coverage Weekly / Coverage Tests (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
import { Project, type SourceFile } from 'ts-morph';
|
||||
import { test as base, expect } from 'vitest';
|
||||
|
||||
import { setConfig, resetConfig, defineConfig, type DefineConfigInput } from '../config.js';
|
||||
|
||||
export interface RuleTestContext {
|
||||
project: Project;
|
||||
createFile: (path: string, code: string) => SourceFile;
|
||||
}
|
||||
|
||||
const defaultTestConfig: DefineConfigInput = {
|
||||
rootDir: '/',
|
||||
excludeFromPages: ['BasePage.ts'],
|
||||
fixtureObjectName: 'n8n',
|
||||
apiFixtureName: 'api',
|
||||
flowLayerName: 'Composable',
|
||||
rawApiPatterns: [/\brequest\.(get|post|put|patch|delete|head)\s*\(/i, /\bfetch\s*\(/],
|
||||
patterns: {
|
||||
pages: ['pages/**/*.ts'],
|
||||
components: ['pages/components/**/*.ts'],
|
||||
flows: ['composables/**/*.ts'],
|
||||
tests: ['tests/**/*.spec.ts'],
|
||||
services: ['services/**/*.ts'],
|
||||
fixtures: ['fixtures/**/*.ts'],
|
||||
helpers: ['helpers/**/*.ts'],
|
||||
factories: ['factories/**/*.ts'],
|
||||
testData: [],
|
||||
},
|
||||
};
|
||||
|
||||
export const test = base.extend<RuleTestContext>({
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
project: async ({ task: _ }, use) => {
|
||||
const project = new Project({ useInMemoryFileSystem: true });
|
||||
setConfig(defineConfig(defaultTestConfig));
|
||||
await use(project);
|
||||
resetConfig();
|
||||
},
|
||||
|
||||
createFile: async ({ project }, use) => {
|
||||
await use((path: string, code: string) => project.createSourceFile(path, code));
|
||||
},
|
||||
});
|
||||
|
||||
export { expect };
|
||||
Reference in New Issue
Block a user