nip57: cleanup useless tests.
This commit is contained in:
parent
b575e47844
commit
929d62bbbb
109
nip57.test.ts
109
nip57.test.ts
|
@ -1,112 +1,7 @@
|
||||||
import { describe, test, expect, mock } from 'bun:test'
|
import { describe, test, expect } from 'bun:test'
|
||||||
import { finalizeEvent } from './pure.ts'
|
import { finalizeEvent } from './pure.ts'
|
||||||
import { getPublicKey, generateSecretKey } from './pure.ts'
|
import { getPublicKey, generateSecretKey } from './pure.ts'
|
||||||
import {
|
import { getSatoshisAmountFromBolt11, makeZapReceipt, validateZapRequest } from './nip57.ts'
|
||||||
getSatoshisAmountFromBolt11,
|
|
||||||
getZapEndpoint,
|
|
||||||
makeZapReceipt,
|
|
||||||
makeZapRequest,
|
|
||||||
useFetchImplementation,
|
|
||||||
validateZapRequest,
|
|
||||||
} from './nip57.ts'
|
|
||||||
import { buildEvent } from './test-helpers.ts'
|
|
||||||
|
|
||||||
describe('getZapEndpoint', () => {
|
|
||||||
test('returns null if neither lud06 nor lud16 is present', async () => {
|
|
||||||
const metadata = buildEvent({ kind: 0, content: '{}' })
|
|
||||||
const result = await getZapEndpoint(metadata)
|
|
||||||
|
|
||||||
expect(result).toBeNull()
|
|
||||||
})
|
|
||||||
|
|
||||||
test('returns null if fetch fails', async () => {
|
|
||||||
const fetchImplementation = mock(() => Promise.reject(new Error()))
|
|
||||||
useFetchImplementation(fetchImplementation)
|
|
||||||
|
|
||||||
const metadata = buildEvent({ kind: 0, content: '{"lud16": "name@domain"}' })
|
|
||||||
const result = await getZapEndpoint(metadata)
|
|
||||||
|
|
||||||
expect(result).toBeNull()
|
|
||||||
expect(fetchImplementation).toHaveBeenCalledWith('https://domain/.well-known/lnurlp/name')
|
|
||||||
})
|
|
||||||
|
|
||||||
test('returns null if the response does not allow Nostr payments', async () => {
|
|
||||||
const fetchImplementation = mock(() => Promise.resolve({ json: () => ({ allowsNostr: false }) }))
|
|
||||||
useFetchImplementation(fetchImplementation)
|
|
||||||
|
|
||||||
const metadata = buildEvent({ kind: 0, content: '{"lud16": "name@domain"}' })
|
|
||||||
const result = await getZapEndpoint(metadata)
|
|
||||||
|
|
||||||
expect(result).toBeNull()
|
|
||||||
expect(fetchImplementation).toHaveBeenCalledWith('https://domain/.well-known/lnurlp/name')
|
|
||||||
})
|
|
||||||
|
|
||||||
test('returns the callback URL if the response allows Nostr payments', async () => {
|
|
||||||
const fetchImplementation = mock(() =>
|
|
||||||
Promise.resolve({
|
|
||||||
json: () => ({
|
|
||||||
allowsNostr: true,
|
|
||||||
nostrPubkey: 'pubkey',
|
|
||||||
callback: 'callback',
|
|
||||||
}),
|
|
||||||
}),
|
|
||||||
)
|
|
||||||
useFetchImplementation(fetchImplementation)
|
|
||||||
|
|
||||||
const metadata = buildEvent({ kind: 0, content: '{"lud16": "name@domain"}' })
|
|
||||||
const result = await getZapEndpoint(metadata)
|
|
||||||
|
|
||||||
expect(result).toBe('callback')
|
|
||||||
expect(fetchImplementation).toHaveBeenCalledWith('https://domain/.well-known/lnurlp/name')
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
describe('makeZapRequest', () => {
|
|
||||||
test('throws an error if amount is not given', () => {
|
|
||||||
expect(() =>
|
|
||||||
// @ts-expect-error
|
|
||||||
makeZapRequest({
|
|
||||||
profile: 'profile',
|
|
||||||
event: null,
|
|
||||||
relays: [],
|
|
||||||
comment: '',
|
|
||||||
}),
|
|
||||||
).toThrow()
|
|
||||||
})
|
|
||||||
|
|
||||||
test('throws an error if profile is not given', () => {
|
|
||||||
expect(() =>
|
|
||||||
// @ts-expect-error
|
|
||||||
makeZapRequest({
|
|
||||||
event: null,
|
|
||||||
amount: 100,
|
|
||||||
relays: [],
|
|
||||||
comment: '',
|
|
||||||
}),
|
|
||||||
).toThrow()
|
|
||||||
})
|
|
||||||
|
|
||||||
test('returns a valid Zap request', () => {
|
|
||||||
const result = makeZapRequest({
|
|
||||||
profile: 'profile',
|
|
||||||
event: 'event',
|
|
||||||
amount: 100,
|
|
||||||
relays: ['relay1', 'relay2'],
|
|
||||||
comment: 'comment',
|
|
||||||
})
|
|
||||||
expect(result.kind).toBe(9734)
|
|
||||||
expect(result.created_at).toBeCloseTo(Date.now() / 1000, 0)
|
|
||||||
expect(result.content).toBe('comment')
|
|
||||||
expect(result.tags).toEqual(
|
|
||||||
expect.arrayContaining([
|
|
||||||
['p', 'profile'],
|
|
||||||
['amount', '100'],
|
|
||||||
['relays', 'relay1', 'relay2'],
|
|
||||||
['e', 'event'],
|
|
||||||
]),
|
|
||||||
)
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
describe('validateZapRequest', () => {
|
describe('validateZapRequest', () => {
|
||||||
test('returns an error message for invalid JSON', () => {
|
test('returns an error message for invalid JSON', () => {
|
||||||
|
|
Loading…
Reference in New Issue