import * as Credential from './Credential.js' describe('parseCredential', () => { test('parses credentials keyed by chain id', () => { const credential = Credential.parseCredential( JSON.stringify({ 4217: 'mainnet:secret', 421700001: 'zone:secret' }), ) expect(credential).toEqual({ 4217: 'mainnet:secret', 421700001: 'zone:secret' }) }) test('supports a shared credential', () => { expect(Credential.parseCredential('shared:secret')).toBe('shared:secret') }) test('rejects malformed credential maps', () => { expect(() => Credential.parseCredential('{"4217":1}')).toThrowErrorMatchingInlineSnapshot( `[Error: Expected a credential or a chain-id-to-credential JSON object.]`, ) }) }) describe('resolveCredential', () => { test('infers Basic auth from a credential containing a colon', () => { expect(Credential.resolveCredential({ chainId: 4217, value: 'user:password' })).toEqual({ basicAuth: 'user:password', }) }) test('infers Bearer auth from a credential without a colon', () => { expect(Credential.resolveCredential({ chainId: 4217, value: 'bearer-token' })).toEqual({ basicAuth: undefined, bearerAuth: 'bearer-token', }) }) test('selects a credential by chain id', () => { const value = JSON.stringify({ 4217: 'mainnet:secret', 421700001: 'zone-token' }) expect(Credential.resolveCredential({ chainId: 4217, value })).toEqual({ basicAuth: 'mainnet:secret', }) expect(Credential.resolveCredential({ chainId: 421700001, value })).toEqual({ basicAuth: undefined, bearerAuth: 'zone-token', }) expect(Credential.resolveCredential({ chainId: 42431, value })).toEqual({ basicAuth: undefined, }) }) })