committed by
Daniel D’Aquino
parent
744bf4bb07
commit
690e1347e0
@@ -20,16 +20,16 @@ class ReplyTests: XCTestCase {
|
||||
|
||||
func testAtAtEnd() {
|
||||
let content = "what @"
|
||||
let blocks = parse_post_blocks(content: content)
|
||||
|
||||
let blocks = parse_post_blocks(content: content)!.blocks
|
||||
|
||||
XCTAssertEqual(blocks.count, 1)
|
||||
XCTAssertEqual(blocks[0].asText, "what @")
|
||||
}
|
||||
|
||||
func testHashtagsInQuote() {
|
||||
let content = "This is my \"#awesome post\""
|
||||
let blocks = parse_post_blocks(content: content)
|
||||
|
||||
let blocks = parse_post_blocks(content: content)!.blocks
|
||||
|
||||
XCTAssertEqual(blocks.count, 3)
|
||||
XCTAssertEqual(blocks[0].asText, "This is my \"")
|
||||
XCTAssertEqual(blocks[1].asHashtag, "awesome")
|
||||
@@ -38,25 +38,46 @@ class ReplyTests: XCTestCase {
|
||||
|
||||
func testHashtagAtStartWorks() {
|
||||
let content = "#hashtag"
|
||||
let blocks = parse_post_blocks(content: content)
|
||||
let blocks = parse_post_blocks(content: content)!.blocks
|
||||
XCTAssertEqual(blocks.count, 1)
|
||||
XCTAssertEqual(blocks[0].asHashtag, "hashtag")
|
||||
}
|
||||
|
||||
func testGroupOfHashtags() {
|
||||
let content = "#hashtag#what#nope"
|
||||
let blocks = parse_post_blocks(content: content)
|
||||
let blocks = parse_post_blocks(content: content)!.blocks
|
||||
XCTAssertEqual(blocks.count, 3)
|
||||
XCTAssertEqual(blocks[0].asHashtag, "hashtag")
|
||||
XCTAssertEqual(blocks[1].asHashtag, "what")
|
||||
XCTAssertEqual(blocks[2].asHashtag, "nope")
|
||||
}
|
||||
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
func testRootReplyWithMention() throws {
|
||||
let content = "this is #[1] a mention"
|
||||
let thread_id = NoteId(hex: "c75e5cbafbefd5de2275f831c2a2386ea05ec5e5a78a5ccf60d467582db48945")!
|
||||
let mentioned_id = NoteId(hex: "5a534797e8cd3b9f4c1cf63e20e48bd0e8bd7f8c4d6353fbd576df000f6f54d3")!
|
||||
let tags = [thread_id.tag, mentioned_id.tag]
|
||||
let ev = NostrEvent(content: content, keypair: test_keypair, tags: tags)!
|
||||
let event_refs = interpret_event_refs(tags: ev.tags)
|
||||
|
||||
XCTAssertEqual(event_refs.count, 2)
|
||||
XCTAssertNotNil(event_refs[0].is_reply)
|
||||
XCTAssertNotNil(event_refs[0].is_thread_id)
|
||||
XCTAssertNotNil(event_refs[0].is_reply)
|
||||
XCTAssertNotNil(event_refs[0].is_direct_reply)
|
||||
XCTAssertEqual(event_refs[0].is_reply, .some(NoteRef(note_id: thread_id)))
|
||||
XCTAssertEqual(event_refs[0].is_thread_id, .some(NoteRef(note_id: thread_id)))
|
||||
XCTAssertNotNil(event_refs[1].is_mention)
|
||||
XCTAssertEqual(event_refs[1].is_mention, .some(NoteRef(note_id: mentioned_id)))
|
||||
}
|
||||
|
||||
func testEmptyMention() throws {
|
||||
let content = "this is some & content"
|
||||
let ev = NostrEvent(content: content, keypair: test_keypair, tags: [])!
|
||||
let blocks = parse_note_content(content: .init(note: ev, keypair: test_keypair)).blocks
|
||||
let post_blocks = parse_post_blocks(content: content)
|
||||
let post_blocks = parse_post_blocks(content: content)!.blocks
|
||||
let post = NostrPost(content: content, kind: NostrKind.text, tags: [])
|
||||
let post_tags = post.make_post_tags(post_blocks: post_blocks, tags: [])
|
||||
let tr = interpret_event_refs(tags: ev.tags)
|
||||
@@ -82,7 +103,7 @@ class ReplyTests: XCTestCase {
|
||||
let expected_render = "nostr:\(pk.npub)\nnostr:\(pk.npub)"
|
||||
XCTAssertEqual(post_note.content, expected_render)
|
||||
|
||||
let blocks = parse_note_content(content: .content(post_note.content,nil)).blocks
|
||||
let blocks = parse_note_content(content: .content(post_note.content,nil))!.blocks
|
||||
let rendered = blocks.map { $0.asString }.joined(separator: "")
|
||||
|
||||
XCTAssertEqual(rendered, expected_render)
|
||||
@@ -210,15 +231,15 @@ class ReplyTests: XCTestCase {
|
||||
}
|
||||
|
||||
func testEmptyPostReference() throws {
|
||||
let parsed = parse_post_blocks(content: "")
|
||||
let parsed = parse_post_blocks(content: "")!.blocks
|
||||
XCTAssertEqual(parsed.count, 0)
|
||||
}
|
||||
|
||||
func testBech32MentionAtStart() throws {
|
||||
let pk = Pubkey(hex: "32e1827635450ebb3c5a7d12c1f8e7b2b514439ac10a67eef3d9fd9c5c68e245")!
|
||||
let content = "@\(pk.npub) hello there"
|
||||
let blocks = parse_post_blocks(content: content)
|
||||
|
||||
let blocks = parse_post_blocks(content: content)!.blocks
|
||||
|
||||
XCTAssertEqual(blocks.count, 2)
|
||||
XCTAssertEqual(blocks[0].asMention, .any(.pubkey(pk)))
|
||||
XCTAssertEqual(blocks[1].asText, " hello there")
|
||||
@@ -228,7 +249,7 @@ class ReplyTests: XCTestCase {
|
||||
func testBech32MentionAtEnd() throws {
|
||||
let pk = Pubkey(hex: "32e1827635450ebb3c5a7d12c1f8e7b2b514439ac10a67eef3d9fd9c5c68e245")!
|
||||
let content = "this is a @\(pk.npub)"
|
||||
let blocks = parse_post_blocks(content: content)
|
||||
let blocks = parse_post_blocks(content: content)!.blocks
|
||||
|
||||
XCTAssertEqual(blocks.count, 2)
|
||||
XCTAssertEqual(blocks[1].asMention, .any(.pubkey(pk)))
|
||||
@@ -239,8 +260,8 @@ class ReplyTests: XCTestCase {
|
||||
let evid = NoteId(hex: "71ba3e5ddaf48103be294aa370e470fb60b6c8bca3fb01706eecd00054c2f588")!
|
||||
let pk = Pubkey(hex: "32e1827635450ebb3c5a7d12c1f8e7b2b514439ac10a67eef3d9fd9c5c68e245")!
|
||||
let content = "this is a @\(pk.npub) mention"
|
||||
let blocks = parse_post_blocks(content: content)
|
||||
let post = NostrPost(content: content, tags: [["e", evid.hex()]])
|
||||
let blocks = parse_post_blocks(content: content)!.blocks
|
||||
let post = NostrPost(content: content, references: [.event(evid)])
|
||||
let ev = post.to_event(keypair: test_keypair_full)!
|
||||
|
||||
XCTAssertEqual(ev.tags.count, 2)
|
||||
@@ -254,8 +275,8 @@ class ReplyTests: XCTestCase {
|
||||
let pk = Pubkey(hex: "ccf95d668650178defca5ac503693b6668eb77895f610178ff8ed9fe5cf9482e")!
|
||||
let nsec = "nsec1jmzdz7d0ldqctdxwm5fzue277ttng2pk28n2u8wntc2r4a0w96ssnyukg7"
|
||||
let content = "this is a @\(nsec) mention"
|
||||
let blocks = parse_post_blocks(content: content)
|
||||
let post = NostrPost(content: content, tags: [["e", evid.hex()]])
|
||||
let blocks = parse_post_blocks(content: content)!.blocks
|
||||
let post = NostrPost(content: content, references: [.event(evid)])
|
||||
let ev = post.to_event(keypair: test_keypair_full)!
|
||||
|
||||
XCTAssertEqual(ev.tags.count, 2)
|
||||
@@ -285,7 +306,7 @@ class ReplyTests: XCTestCase {
|
||||
func testInvalidPostReference() throws {
|
||||
let pk = "32e1827635450ebb3c5a7d12c1f8e7b2b514439ac10a67eef3d9fd9c5c68e24"
|
||||
let content = "this is a @\(pk) mention"
|
||||
let parsed = parse_post_blocks(content: content)
|
||||
let parsed = parse_post_blocks(content: content)!.blocks
|
||||
XCTAssertEqual(parsed.count, 1)
|
||||
guard case .text(let txt) = parsed[0] else {
|
||||
XCTAssert(false)
|
||||
@@ -296,7 +317,7 @@ class ReplyTests: XCTestCase {
|
||||
|
||||
func testInvalidPostReferenceEmptyAt() throws {
|
||||
let content = "this is a @ mention"
|
||||
let parsed = parse_post_blocks(content: content)
|
||||
let parsed = parse_post_blocks(content: content)!.blocks
|
||||
XCTAssertEqual(parsed.count, 1)
|
||||
guard case .text(let txt) = parsed[0] else {
|
||||
XCTAssert(false)
|
||||
@@ -308,8 +329,8 @@ class ReplyTests: XCTestCase {
|
||||
func testInvalidUriReference() throws {
|
||||
let id = "6fec2ee6cfff779fe8560976b3d9df782b74577f0caefa7a77c0ed4c3749b5de"
|
||||
let content = "this is a nostr:z:\(id) event mention"
|
||||
let parsed = parse_post_blocks(content: content)
|
||||
|
||||
let parsed = parse_post_blocks(content: content)!.blocks
|
||||
|
||||
XCTAssertNotNil(parsed)
|
||||
XCTAssertEqual(parsed.count, 1)
|
||||
|
||||
@@ -323,7 +344,7 @@ class ReplyTests: XCTestCase {
|
||||
|
||||
func testParsePostUriPubkeyReference() throws {
|
||||
let id = Pubkey(hex: "6fec2ee6cfff779fe8560976b3d9df782b74577f0caefa7a77c0ed4c3749b5de")!
|
||||
let parsed = parse_post_blocks(content: "this is a nostr:\(id.npub) event mention")
|
||||
let parsed = parse_post_blocks(content: "this is a nostr:\(id.npub) event mention")!.blocks
|
||||
|
||||
XCTAssertNotNil(parsed)
|
||||
XCTAssertEqual(parsed.count, 3)
|
||||
@@ -346,7 +367,7 @@ class ReplyTests: XCTestCase {
|
||||
|
||||
func testParsePostUriReference() throws {
|
||||
let id = NoteId(hex: "6fec2ee6cfff779fe8560976b3d9df782b74577f0caefa7a77c0ed4c3749b5de")!
|
||||
let parsed = parse_post_blocks(content: "this is a nostr:\(id.bech32) event mention")
|
||||
let parsed = parse_post_blocks(content: "this is a nostr:\(id.bech32) event mention")!.blocks
|
||||
|
||||
XCTAssertNotNil(parsed)
|
||||
XCTAssertEqual(parsed.count, 3)
|
||||
@@ -366,5 +387,4 @@ class ReplyTests: XCTestCase {
|
||||
}
|
||||
XCTAssertEqual(t2, " event mention")
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user