@yoroi/portfolio
Version:
The Portfolio package of Yoroi SDK
67 lines (53 loc) • 1.69 kB
text/typescript
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)
})
})