UNPKG

@yoroi/portfolio

Version:

The Portfolio package of Yoroi SDK

67 lines (53 loc) 1.69 kB
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) }) })