UNPKG

accounts

Version:

Tempo Accounts SDK

63 lines (55 loc) 1.98 kB
import type { Hex } from 'viem' import { describe, expectTypeOf, test } from 'vp/test' import * as z from 'zod/mini' import * as CliAuth from './CliAuth.js' describe('createRequest', () => { test('includes the v1 device-code request fields', () => { expectTypeOf<z.output<typeof CliAuth.createRequest>>().toMatchTypeOf<{ account?: Hex | undefined codeChallenge: string expiry?: number | undefined keyType?: 'secp256k1' | 'p256' | 'webAuthn' | undefined limits?: readonly { token: Hex; limit: bigint }[] | undefined pubKey: Hex }>() }) test('does not include scopes in v1', () => { type Request = z.output<typeof CliAuth.createRequest> expectTypeOf<Request>().not.toHaveProperty('scopes') }) }) describe('pollResponse', () => { test('authorized responses carry the normal keyAuthorization shape', () => { type Response = Extract<z.output<typeof CliAuth.pollResponse>, { status: 'authorized' }> expectTypeOf<Response>().toMatchTypeOf<{ accountAddress: Hex keyAuthorization: z.output<typeof CliAuth.keyAuthorization> status: 'authorized' }>() }) }) describe('pendingResponse', () => { test('pending responses expose the browser approval payload', () => { expectTypeOf<z.output<typeof CliAuth.pendingResponse>>().toMatchTypeOf<{ accessKeyAddress: Hex account?: Hex | undefined chainId: bigint code: string expiry: number keyType: 'secp256k1' | 'p256' | 'webAuthn' limits?: readonly { token: Hex; limit: bigint }[] | undefined pubKey: Hex status: 'pending' }>() }) }) describe('Store', () => { test('memory helper satisfies the shared store contract', () => { expectTypeOf(CliAuth.Store.memory).returns.toMatchTypeOf<CliAuth.Store>() }) }) describe('from', () => { test('returns the shared CLI auth helper contract', () => { expectTypeOf(CliAuth.from).returns.toMatchTypeOf<CliAuth.CliAuth>() }) })