mirror of
https://github.com/nbd-wtf/nostr-tools.git
synced 2025-12-08 16:28:49 +00:00
Fix reposts without p tag not parsed
This commit is contained in:
@@ -2,10 +2,11 @@
|
||||
|
||||
const {nip18, finishEvent, getPublicKey, Kind} = require('./lib/nostr.cjs')
|
||||
|
||||
const relayUrl = 'https://relay.example.com'
|
||||
|
||||
describe('finishRepostEvent + getRepostedEventPointer + getRepostedEvent', () => {
|
||||
const privateKey =
|
||||
'd217c1ff2f8a65c3e3a1740db3b9f58b8c848bb45e26d00ed4714e4a0f4ceecf'
|
||||
const relayUrl = 'https://relay.example.com'
|
||||
|
||||
const publicKey = getPublicKey(privateKey)
|
||||
|
||||
@@ -99,3 +100,20 @@ describe('finishRepostEvent + getRepostedEventPointer + getRepostedEvent', () =>
|
||||
expect(repostedEventFromContent).toEqual(undefined)
|
||||
})
|
||||
})
|
||||
|
||||
describe('getRepostedEventPointer', () => {
|
||||
it('should parse an event with only an `e` tag', () => {
|
||||
const event = {
|
||||
kind: Kind.Repost,
|
||||
tags: [
|
||||
['e', 'reposted event id', relayUrl],
|
||||
],
|
||||
}
|
||||
|
||||
const repostedEventPointer = nip18.getRepostedEventPointer(event)
|
||||
|
||||
expect(repostedEventPointer.id).toEqual('reposted event id')
|
||||
expect(repostedEventPointer.author).toEqual(undefined)
|
||||
expect(repostedEventPointer.relays).toEqual([ relayUrl ])
|
||||
})
|
||||
})
|
||||
|
||||
6
nip18.ts
6
nip18.ts
@@ -55,14 +55,14 @@ export function getRepostedEventPointer(event: Event<number>): undefined | Event
|
||||
}
|
||||
}
|
||||
|
||||
if (lastETag === undefined || lastPTag === undefined) {
|
||||
if (lastETag === undefined) {
|
||||
return undefined
|
||||
}
|
||||
|
||||
return {
|
||||
id: lastETag[1],
|
||||
relays: [ lastETag[2], lastPTag[2] ].filter((x) => x !== undefined),
|
||||
author: lastPTag[1],
|
||||
relays: [ lastETag[2], lastPTag?.[2] ].filter((x): x is string => typeof x === 'string'),
|
||||
author: lastPTag?.[1],
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user