# test.govlab/patterns/core/factories/pattern.factory.test.ts

> 21 lines of code and 0 definitions.

Tree: Codebase Testing
Language: typescript
Canonical: https://banes-lab.com/anatomy/testing#file-testing-test-govlab-patterns-core-factories-pattern-factory-test-ts
Source text: https://banes-lab.com/source/testing/test.govlab/patterns/core/factories/pattern.factory.test.ts.txt

Listed in [test.govlab/patterns/core/factories](https://banes-lab.com/api/source/testing/test.govlab/patterns/core/factories.md), after [test.govlab/patterns/core/factories/operation.factory.test.ts](https://banes-lab.com/source/testing/test.govlab/patterns/core/factories/operation.factory.test.ts.md) and before [test.govlab/patterns/core/factories/record.factory.test.ts](https://banes-lab.com/source/testing/test.govlab/patterns/core/factories/record.factory.test.ts.md).

## Contained in

- [test.govlab/patterns/core/factories](https://banes-lab.com/anatomy/testing/folder-testing-test-govlab-patterns-core-factories.md)

## Source

```typescript
import { describe, expect, it } from "vitest";
import { createGovlabPatterns } from "@govlab/patterns/core/factories/pattern.factory.ts";
import { registeredFaces } from "@govlab/patterns/core/registries/pattern.registry.ts";

describe("createGovlabPatterns", () => {
    it("folds every registered face into one frozen port", () => {
        const lab = createGovlabPatterns();
        expect(lab.faces).toStrictEqual(registeredFaces().map((face) => face.name));
        expect(Object.isFrozen(lab)).toBe(true);
    });

    it("accepts an injected logger without calling it while folding", () => {
        const warnings: string[] = [];
        createGovlabPatterns({
            logger: {
                warn(message) {
                    warnings.push(message);
                },
            },
        });
        expect(warnings).toStrictEqual([]);
    });
});
```
