@yoroi/portfolio
Version:
The Portfolio package of Yoroi SDK
40 lines • 1.67 kB
JavaScript
import { Api } from '@yoroi/types';
import { z } from 'zod';
import { responseRecordWithCacheSchemaMaker } from './response-record-with-cache-schema-maker';
describe('responseRecordWithCacheSchemaMaker', () => {
it('should return the correct schema for HttpStatusCode.Ok', () => {
const recordSchema = z.object({
id: z.string(),
name: z.string()
});
const schema = responseRecordWithCacheSchemaMaker(recordSchema);
const validData = [Api.HttpStatusCode.Ok, {
id: '1',
name: 'John Doe'
}, 'cacheKey', 1000];
expect(schema.safeParse(validData).success).toBe(true);
});
it('should return the correct schema for HttpStatusCode.NotModified', () => {
const schema = responseRecordWithCacheSchemaMaker(z.number());
const validData = [Api.HttpStatusCode.NotModified, 123];
expect(schema.safeParse(validData).success).toBe(true);
});
it('should reutrn true when schema HttpStatusCode.InternalServerError', () => {
const schema = responseRecordWithCacheSchemaMaker(z.number());
const validData = [Api.HttpStatusCode.InternalServerError, 'Record not found', 1000];
expect(schema.safeParse(validData).success).toBe(true);
});
it('should return an error for invalid data', () => {
const recordSchema = z.object({
id: z.string(),
name: z.string()
});
const schema = responseRecordWithCacheSchemaMaker(recordSchema);
const invalidData = [Api.HttpStatusCode.Ok, {
id: 1,
name: 'John Doe'
}, 'cacheKey', -1000];
expect(schema.safeParse(invalidData).success).toBe(false);
});
});
//# sourceMappingURL=response-record-with-cache-schema-maker.test.js.map