@yoroi/common
Version:
The Common package of Yoroi SDK
109 lines (108 loc) • 2.91 kB
JavaScript
"use strict";
import z from 'zod';
import { cacheRecordSchemaMaker, isCacheRecord, parseCacheRecord } from './cache-record-schema-maker';
describe('cacheRecordSchemaMaker', () => {
it('should validate a valid cache record', () => {
const recordSchema = z.object({
id: z.string(),
name: z.string()
});
const cacheRecordSchema = cacheRecordSchemaMaker(recordSchema);
const validCacheRecord = {
record: {
id: '123',
name: 'Test'
},
expires: 1000,
hash: 'hash123'
};
const result = cacheRecordSchema.safeParse(validCacheRecord);
expect(result.success).toBe(true);
});
it('should not validate an invalid cache record', () => {
const recordSchema = z.object({
id: z.string(),
name: z.string()
});
const cacheRecordSchema = cacheRecordSchemaMaker(recordSchema);
const invalidCacheRecord = {
record: {
id: '123',
name: 123
},
expires: -100,
hash: 'hash123'
};
const result = cacheRecordSchema.safeParse(invalidCacheRecord);
expect(result.success).toBe(false);
});
});
describe('isCacheRecord', () => {
it('should return true for a valid cache record', () => {
const recordSchema = z.object({
id: z.string(),
name: z.string()
});
const validCacheRecord = {
record: {
id: '123',
name: 'Test'
},
expires: 1000,
hash: 'hash123'
};
const result = isCacheRecord(recordSchema, validCacheRecord);
expect(result).toBe(true);
});
it('should return false for an invalid cache record', () => {
const recordSchema = z.object({
id: z.string(),
name: z.string()
});
const invalidCacheRecord = {
record: {
id: '123',
name: 123
},
expires: -100,
hash: 'hash123'
};
const result = isCacheRecord(recordSchema, invalidCacheRecord);
expect(result).toBe(false);
});
});
describe('parseCacheRecord', () => {
it('should return the cache record for a valid cache record', () => {
const recordSchema = z.object({
id: z.string(),
name: z.string()
});
const validCacheRecord = {
record: {
id: '123',
name: 'Test'
},
expires: 1000,
hash: 'hash123'
};
const result = parseCacheRecord(recordSchema, validCacheRecord);
expect(result).toEqual(validCacheRecord);
});
it('should return undefined for an invalid cache record', () => {
const recordSchema = z.object({
id: z.string(),
name: z.string()
});
const invalidCacheRecord = {
record: {
id: '123',
name: 123
},
expires: -100,
hash: 'hash123'
};
const result = parseCacheRecord(recordSchema, invalidCacheRecord);
expect(result).toBeUndefined();
});
});
//# sourceMappingURL=cache-record-schema-maker.test.js.map