query-2jz
Version:
Query-2jz: A GraphQL alternative with faster performance and simpler use
69 lines (56 loc) • 1.87 kB
text/typescript
import { Qryn } from '../index';
describe('Qryn', () => {
let qryn: Qryn;
beforeEach(() => {
const config = global.testUtils.createMockConfig();
const models = [global.testUtils.createMockModel('User')];
qryn = new Qryn(config, models);
});
afterEach(async () => {
if (qryn) {
await qryn.stop();
}
});
describe('initialization', () => {
it('should initialize successfully', async () => {
await expect(qryn.initialize()).resolves.not.toThrow();
});
it('should get models', () => {
const models = qryn.getModels();
expect(models).toHaveLength(1);
expect(models[0].name).toBe('User');
});
it('should get model by name', () => {
const model = qryn.getModel('User');
expect(model).toBeDefined();
expect(model?.name).toBe('User');
});
it('should return undefined for non-existent model', () => {
const model = qryn.getModel('NonExistent');
expect(model).toBeUndefined();
});
});
describe('statistics', () => {
it('should get stats', async () => {
await qryn.initialize();
const stats = qryn.getStats();
expect(stats).toHaveProperty('initialized');
expect(stats).toHaveProperty('models');
});
});
describe('model management', () => {
it('should add model', () => {
const newModel = global.testUtils.createMockModel('Post');
qryn.addModel(newModel);
const models = qryn.getModels();
expect(models).toHaveLength(2);
expect(qryn.getModel('Post')).toBeDefined();
});
it('should remove model', () => {
qryn.removeModel('User');
const models = qryn.getModels();
expect(models).toHaveLength(0);
expect(qryn.getModel('User')).toBeUndefined();
});
});
});