Documentation
    Preparing search index...

    Module @map-colonies/vitest-utils

    vitest-utils

    Shared utilities for the Vitest testing framework used across MapColonies packages.

    npm install --save-dev @map-colonies/vitest-utils
    

    Peer dependencies (vitest, jest-openapi, jest-extended) are optional — install only what you use.

    Check the autogenerated documentation here.

    A pre-configured reporters array for vitest.config.ts. Includes default and html reporters, and automatically adds github-actions when running in CI.

    // vitest.config.ts
    import { defineConfig } from 'vitest/config';
    import { reporters } from '@map-colonies/vitest-utils';

    export default defineConfig({
    test: {
    reporters,
    },
    });

    Converts compilerOptions.paths from a tsconfig.json into a Vitest resolve.alias map, keeping path aliases in sync between TypeScript and test runs.

    // vitest.config.ts
    import { defineConfig } from 'vitest/config';
    import { getPathAlias } from '@map-colonies/vitest-utils';
    import tsconfigJson from './tsconfig.json';

    export default defineConfig({
    resolve: {
    alias: getPathAlias(tsconfigJson, __dirname),
    },
    });

    Patches Vitest's expect into the global scope so that jest-openapi matchers (e.g. toSatisfyApiSpec) work inside Vitest tests. Resets the global after setup to avoid conflicts.

    Recommended: call it from a Vitest setup file so it runs once for the entire suite.

    // tests/setup.ts
    import { setupOpenapi } from '@map-colonies/vitest-utils';

    setupOpenapi('/absolute/path/to/openapi.yaml');
    // vitest.config.ts
    import { defineConfig } from 'vitest/config';

    export default defineConfig({
    test: {
    setupFiles: ['./tests/setup.ts'],
    },
    });

    Then use the matcher in your tests:

    it('should satisfy the OpenAPI spec', async function () {
    const response = await supertest(app).get('/resource');
    expect(response).toSatisfyApiSpec();
    });

    Alternatively, call it inside a beforeAll when you need per-suite control:

    beforeAll(function () {
    setupOpenapi('/absolute/path/to/openapi.yaml');
    });

    Registers all jest-extended matchers into Vitest's expect. Import it once from a setup file.

    // tests/setup.ts
    import '@map-colonies/vitest-utils/extended';
    // vitest.config.ts
    import { defineConfig } from 'vitest/config';

    export default defineConfig({
    test: {
    setupFiles: ['./tests/setup.ts'],
    },
    });

    Modules

    extended