@wearesage/schema
Version:
A flexible schema definition and validation system for TypeScript with multi-database support
40 lines (31 loc) • 1.49 kB
text/typescript
import "reflect-metadata";
import { TestRegistryProvider } from "../../core/TestRegistryProvider";
import { MetadataRegistry } from "../../core/MetadataRegistry";
describe("TestRegistryProvider", () => {
test("should create a fresh registry instance", () => {
// Create a test registry provider
const provider = new TestRegistryProvider();
// Get the registry
const registry = provider.getRegistry();
// Verify it's a MetadataRegistry instance
expect(registry).toBeInstanceOf(MetadataRegistry);
// Verify we get the same instance on multiple calls
expect(provider.getRegistry()).toBe(registry);
});
test("should create independent registries for different providers", () => {
// Create two test registry providers
const provider1 = new TestRegistryProvider();
const provider2 = new TestRegistryProvider();
// Get registries from both
const registry1 = provider1.getRegistry();
const registry2 = provider2.getRegistry();
// Verify they are different instances
expect(registry1).not.toBe(registry2);
// Verify registries are independent by making changes to one
const testEntity = class TestEntity {};
registry1.registerEntity(testEntity, { name: "test" });
// Verify entity is registered in registry1 but not registry2
expect(registry1.getEntityMetadata(testEntity)).toBeDefined();
expect(registry2.getEntityMetadata(testEntity)).toBeUndefined();
});
});