| |
|
|
| const enforceModelSpec = require('./enforceModelSpec'); |
|
|
| describe('enforceModelSpec function', () => { |
| test('returns true when all model specs match parsed body directly', () => { |
| const modelSpec = { preset: { title: 'Dialog', status: 'Active' } }; |
| const parsedBody = { title: 'Dialog', status: 'Active' }; |
| expect(enforceModelSpec(modelSpec, parsedBody)).toBe(true); |
| }); |
|
|
| test('returns true when model specs match via interchangeable keys', () => { |
| const modelSpec = { preset: { chatGptLabel: 'GPT-4' } }; |
| const parsedBody = { modelLabel: 'GPT-4' }; |
| expect(enforceModelSpec(modelSpec, parsedBody)).toBe(true); |
| }); |
|
|
| test('returns false if any key value does not match', () => { |
| const modelSpec = { preset: { language: 'English', level: 'Advanced' } }; |
| const parsedBody = { language: 'Spanish', level: 'Advanced' }; |
| expect(enforceModelSpec(modelSpec, parsedBody)).toBe(false); |
| }); |
|
|
| test('ignores the \'endpoint\' key in model spec', () => { |
| const modelSpec = { preset: { endpoint: 'ignored', feature: 'Special' } }; |
| const parsedBody = { feature: 'Special' }; |
| expect(enforceModelSpec(modelSpec, parsedBody)).toBe(true); |
| }); |
|
|
| test('handles nested objects correctly', () => { |
| const modelSpec = { preset: { details: { time: 'noon', location: 'park' } } }; |
| const parsedBody = { details: { time: 'noon', location: 'park' } }; |
| expect(enforceModelSpec(modelSpec, parsedBody)).toBe(true); |
| }); |
|
|
| test('handles arrays within objects', () => { |
| const modelSpec = { preset: { tags: ['urgent', 'important'] } }; |
| const parsedBody = { tags: ['urgent', 'important'] }; |
| expect(enforceModelSpec(modelSpec, parsedBody)).toBe(true); |
| }); |
|
|
| test('fails when arrays in objects do not match', () => { |
| const modelSpec = { preset: { tags: ['urgent', 'important'] } }; |
| const parsedBody = { tags: ['important', 'urgent'] }; |
| expect(enforceModelSpec(modelSpec, parsedBody)).toBe(false); |
| }); |
| }); |
|
|