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 {nip18, finishEvent, getPublicKey, Kind} = require('./lib/nostr.cjs')
|
||||||
|
|
||||||
|
const relayUrl = 'https://relay.example.com'
|
||||||
|
|
||||||
describe('finishRepostEvent + getRepostedEventPointer + getRepostedEvent', () => {
|
describe('finishRepostEvent + getRepostedEventPointer + getRepostedEvent', () => {
|
||||||
const privateKey =
|
const privateKey =
|
||||||
'd217c1ff2f8a65c3e3a1740db3b9f58b8c848bb45e26d00ed4714e4a0f4ceecf'
|
'd217c1ff2f8a65c3e3a1740db3b9f58b8c848bb45e26d00ed4714e4a0f4ceecf'
|
||||||
const relayUrl = 'https://relay.example.com'
|
|
||||||
|
|
||||||
const publicKey = getPublicKey(privateKey)
|
const publicKey = getPublicKey(privateKey)
|
||||||
|
|
||||||
@@ -99,3 +100,20 @@ describe('finishRepostEvent + getRepostedEventPointer + getRepostedEvent', () =>
|
|||||||
expect(repostedEventFromContent).toEqual(undefined)
|
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 undefined
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
id: lastETag[1],
|
id: lastETag[1],
|
||||||
relays: [ lastETag[2], lastPTag[2] ].filter((x) => x !== undefined),
|
relays: [ lastETag[2], lastPTag?.[2] ].filter((x): x is string => typeof x === 'string'),
|
||||||
author: lastPTag[1],
|
author: lastPTag?.[1],
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user