feat: complete phase2 baseline cdr quality rbac
This commit is contained in:
@@ -6,12 +6,20 @@ const schema = readFileSync(join(process.cwd(), 'prisma/schema.prisma'), 'utf8')
|
||||
const migration = readFileSync(join(process.cwd(), 'prisma/migrations/20260621090000_init_v2_schema/migration.sql'), 'utf8');
|
||||
const authMigration = readFileSync(join(process.cwd(), 'prisma/migrations/20260621093000_auth_sessions/migration.sql'), 'utf8');
|
||||
const numberLibraryMigration = readFileSync(join(process.cwd(), 'prisma/migrations/20260624095000_number_library/migration.sql'), 'utf8');
|
||||
const businessPrefixMigration = readFileSync(
|
||||
join(process.cwd(), 'prisma/migrations/20260624121000_business_prefix_gateway_rewrite/migration.sql'),
|
||||
'utf8'
|
||||
);
|
||||
|
||||
describe('Prisma schema contract', () => {
|
||||
it('defines every V2 core business table', () => {
|
||||
const tables = [
|
||||
'customers',
|
||||
'customer_gateways',
|
||||
'customer_gateway_ips',
|
||||
'business_prefixes',
|
||||
'customer_gateway_business_prefixes',
|
||||
'customer_gateway_caller_prefixes',
|
||||
'customer_gateway_policies',
|
||||
'customer_recharges',
|
||||
'vendors',
|
||||
@@ -21,6 +29,7 @@ describe('Prisma schema contract', () => {
|
||||
'vendor_gateway_forbidden_periods',
|
||||
'vendor_gateway_codecs',
|
||||
'vendor_gateway_prefix_rules',
|
||||
'vendor_gateway_caller_rewrite_pool',
|
||||
'landing_line_groups',
|
||||
'landing_line_group_items',
|
||||
'geo_cities',
|
||||
@@ -45,7 +54,9 @@ describe('Prisma schema contract', () => {
|
||||
|
||||
for (const table of tables) {
|
||||
expect(schema).toContain(`@@map("${table}")`);
|
||||
expect(`${migration}\n${authMigration}\n${numberLibraryMigration}`).toContain(`CREATE TABLE \`${table}\``);
|
||||
expect(`${migration}\n${authMigration}\n${numberLibraryMigration}\n${businessPrefixMigration}`).toContain(
|
||||
`CREATE TABLE \`${table}\``
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -68,6 +79,21 @@ describe('Prisma schema contract', () => {
|
||||
expect(numberLibraryMigration).toContain('CREATE INDEX `raw_cdrs_callee_operator_started_at_idx`');
|
||||
});
|
||||
|
||||
it('models phase-2 business prefix gateway matching and landing rewrites', () => {
|
||||
expect(schema).toContain('model BusinessPrefix');
|
||||
expect(schema).toContain('model CustomerGatewayIp');
|
||||
expect(schema).toContain('model CustomerGatewayBusinessPrefix');
|
||||
expect(schema).toContain('model CustomerGatewayCallerPrefix');
|
||||
expect(schema).toContain('model VendorGatewayCallerRewrite');
|
||||
expect(schema).toContain('enum CustomerGatewayCallerMatchMode');
|
||||
expect(schema).toContain('enum CustomerGatewayCalleeMatchMode');
|
||||
expect(businessPrefixMigration).toContain('`billing_cycle_sec` INTEGER NOT NULL DEFAULT 60');
|
||||
expect(businessPrefixMigration).toContain('`landing_callee_prefix` VARCHAR(64) NULL');
|
||||
expect(businessPrefixMigration).toContain('`raw_callee` VARCHAR(64) NULL');
|
||||
expect(businessPrefixMigration).toContain('`landing_caller` VARCHAR(64) NULL');
|
||||
expect(businessPrefixMigration).toContain('CREATE INDEX `raw_cdrs_business_prefix_id_started_at_idx`');
|
||||
});
|
||||
|
||||
it('models audit columns and outbox publishing state', () => {
|
||||
expect(schema).toContain('createdAt');
|
||||
expect(schema).toContain('updatedAt');
|
||||
|
||||
Reference in New Issue
Block a user