2023-02-26 18:01:23 +00:00
//
// E v e n t G r o u p V i e w T e s t s . s w i f t
// d a m u s T e s t s
//
// C r e a t e d b y T e r r y Y i u o n 2 / 2 6 / 2 3 .
//
import XCTest
@ testable import damus
final class EventGroupViewTests : XCTestCase {
override func setUpWithError ( ) throws {
// P u t s e t u p c o d e h e r e . T h i s m e t h o d i s c a l l e d b e f o r e t h e i n v o c a t i o n o f e a c h t e s t m e t h o d i n t h e c l a s s .
}
override func tearDownWithError ( ) throws {
// P u t t e a r d o w n c o d e h e r e . T h i s m e t h o d i s c a l l e d a f t e r t h e i n v o c a t i o n o f e a c h t e s t m e t h o d i n t h e c l a s s .
}
2023-06-26 03:35:01 +00:00
func testEventAuthorName ( ) {
2023-09-10 22:50:27 +00:00
let damusState = test_damus_state
2023-11-13 23:03:17 +00:00
let damus_name = " 17ldvg64:nq5mhr77 "
XCTAssertEqual ( event_author_name ( profiles : damusState . profiles , pubkey : test_pubkey ) , damus_name )
2023-07-26 15:46:44 +00:00
XCTAssertEqual ( event_author_name ( profiles : damusState . profiles , pubkey : test_pubkey_2 ) , " 1rppft3m:4qxhsgnj " )
XCTAssertEqual ( event_author_name ( profiles : damusState . profiles , pubkey : ANON_PUBKEY ) , " Anonymous " )
2023-06-26 03:35:01 +00:00
}
func testEventGroupUniquePubkeys ( ) {
2023-09-10 22:50:27 +00:00
let damusState = test_damus_state
2023-06-26 03:35:01 +00:00
let encodedPost = " { \" id \" : \" 8ba545ab96959fe0ce7db31bc10f3ac3aa5353bc4428dbf1e56a7be7062516db \" , \" pubkey \" : \" 7e27509ccf1e297e1df164912a43406218f8bd80129424c3ef798ca3ef5c8444 \" , \" created_at \" : 1677013417, \" kind \" : 1, \" tags \" : [], \" content \" : \" hello \" , \" sig \" : \" 93684f15eddf11f42afbdd81828ee9fc35350344d8650c78909099d776e9ad8d959cd5c4bff7045be3b0b255144add43d0feef97940794a1bc9c309791bebe4a \" } "
2023-07-26 15:46:44 +00:00
let pk1 =
hex_decode_pubkey ( " 1723a4dcc6596d84472eb74d579114d8c46b533c81a0ac76620a7605d3ff76e0 " ) !
let pk2 =
hex_decode_pubkey ( " 08c43696702ba1d720e4564b4ad895efdc3716b37468fb288e585368950a428a " ) !
let pk3 =
hex_decode_pubkey ( " 4e563600925231e9eb35a61842c2c6c19685aa8eefdfad076d6a3f853453a299 " ) !
let repost1 = NostrEvent ( content : encodedPost , keypair : . just_pubkey ( pk1 ) , kind : NostrKind . boost . rawValue , tags : [ ] , createdAt : 1 ) !
let repost2 = NostrEvent ( content : encodedPost , keypair : . just_pubkey ( pk2 ) , kind : NostrKind . boost . rawValue , tags : [ ] , createdAt : 1 ) !
let repost3 = NostrEvent ( content : encodedPost , keypair : . just_pubkey ( pk3 ) , kind : NostrKind . boost . rawValue , tags : [ ] , createdAt : 1 ) !
2023-06-26 03:35:01 +00:00
XCTAssertEqual ( event_group_unique_pubkeys ( profiles : damusState . profiles , group : . repost ( EventGroup ( events : [ ] ) ) ) , [ ] )
2023-07-26 15:46:44 +00:00
XCTAssertEqual ( event_group_unique_pubkeys ( profiles : damusState . profiles , group : . repost ( EventGroup ( events : [ repost1 ] ) ) ) , [ pk1 ] )
XCTAssertEqual ( event_group_unique_pubkeys ( profiles : damusState . profiles , group : . repost ( EventGroup ( events : [ repost1 , repost2 ] ) ) ) , [ pk1 , pk2 ] )
XCTAssertEqual ( event_group_unique_pubkeys ( profiles : damusState . profiles , group : . repost ( EventGroup ( events : [ repost1 , repost2 , repost3 ] ) ) ) , [ pk1 , pk2 , pk3 ] )
2023-06-26 03:35:01 +00:00
}
2023-02-26 18:01:23 +00:00
func testReactingToText ( ) throws {
let enUsLocale = Locale ( identifier : " en-US " )
2023-09-10 22:50:27 +00:00
let damusState = test_damus_state
2023-02-26 18:01:23 +00:00
let encodedPost = " { \" id \" : \" 8ba545ab96959fe0ce7db31bc10f3ac3aa5353bc4428dbf1e56a7be7062516db \" , \" pubkey \" : \" 7e27509ccf1e297e1df164912a43406218f8bd80129424c3ef798ca3ef5c8444 \" , \" created_at \" : 1677013417, \" kind \" : 1, \" tags \" : [], \" content \" : \" hello \" , \" sig \" : \" 93684f15eddf11f42afbdd81828ee9fc35350344d8650c78909099d776e9ad8d959cd5c4bff7045be3b0b255144add43d0feef97940794a1bc9c309791bebe4a \" } "
2023-07-25 15:58:06 +00:00
2023-07-26 15:46:44 +00:00
let pk1_pk =
hex_decode_pubkey ( " 938afd5f44fdf293546767dcc024b4ec09b9df422fad10d577a846f88f56c8f5 " ) !
let pk2_pk =
hex_decode_pubkey ( " 6b9bb7acbcdf0458a81b9e6d29bb1e23ab9b5d288e9b7fa8cee8dedc9082a466 " ) !
let pk3_pk =
hex_decode_pubkey ( " b9f00c1f12b0b7a2e3960565af7aba71da9678d90faeb60bc19813f3a28840de " ) !
let pk1 = Keypair ( pubkey : pk1_pk , privkey : nil )
let pk2 = Keypair ( pubkey : pk2_pk , privkey : nil )
let pk3 = Keypair ( pubkey : pk3_pk , privkey : nil )
2023-07-25 15:58:06 +00:00
let repost1 = NostrEvent ( content : encodedPost , keypair : pk1 , kind : NostrKind . boost . rawValue , tags : [ ] , createdAt : 1 ) !
let repost2 = NostrEvent ( content : encodedPost , keypair : pk2 , kind : NostrKind . boost . rawValue , tags : [ ] , createdAt : 1 ) !
let repost3 = NostrEvent ( content : encodedPost , keypair : pk3 , kind : NostrKind . boost . rawValue , tags : [ ] , createdAt : 1 ) !
2023-02-26 18:01:23 +00:00
2023-07-31 11:05:09 +00:00
XCTAssertEqual ( reacting_to_text ( profiles : damusState . profiles , our_pubkey : damusState . pubkey , group : . repost ( EventGroup ( events : [ ] ) ) , ev : test_note , pubkeys : [ ] , locale : enUsLocale ) , " ?? " )
2023-07-26 15:46:44 +00:00
XCTAssertEqual ( reacting_to_text ( profiles : damusState . profiles , our_pubkey : damusState . pubkey , group : . repost ( EventGroup ( events : [ repost1 ] ) ) , ev : test_note , pubkeys : [ pk1 . pubkey ] , locale : enUsLocale ) , " 1jw906h6:6saq3vx4 reposted a note you were tagged in " )
XCTAssertEqual ( reacting_to_text ( profiles : damusState . profiles , our_pubkey : damusState . pubkey , group : . repost ( EventGroup ( events : [ repost1 , repost2 ] ) ) , ev : test_note , pubkeys : [ pk1 . pubkey , pk2 . pubkey ] , locale : enUsLocale ) , " 1jw906h6:6saq3vx4 and 1dwdm0t9:nqtnamhd reposted a note you were tagged in " )
XCTAssertEqual ( reacting_to_text ( profiles : damusState . profiles , our_pubkey : damusState . pubkey , group : . repost ( EventGroup ( events : [ repost1 , repost2 , repost2 ] ) ) , ev : test_note , pubkeys : [ pk1 . pubkey , pk2 . pubkey , pk3 . pubkey ] , locale : enUsLocale ) , " 1jw906h6:6saq3vx4 and 2 others reposted a note you were tagged in " )
2023-02-26 18:01:23 +00:00
Bundle . main . localizations . map { Locale ( identifier : $0 ) } . forEach {
2023-07-31 11:05:09 +00:00
XCTAssertNoThrow ( reacting_to_text ( profiles : damusState . profiles , our_pubkey : damusState . pubkey , group : . repost ( EventGroup ( events : [ ] ) ) , ev : test_note , pubkeys : [ ] , locale : $0 ) , " ?? " )
XCTAssertNoThrow ( reacting_to_text ( profiles : damusState . profiles , our_pubkey : damusState . pubkey , group : . repost ( EventGroup ( events : [ repost1 ] ) ) , ev : test_note , pubkeys : [ pk1 . pubkey ] , locale : $0 ) )
XCTAssertNoThrow ( reacting_to_text ( profiles : damusState . profiles , our_pubkey : damusState . pubkey , group : . repost ( EventGroup ( events : [ repost1 , repost2 ] ) ) , ev : test_note , pubkeys : [ pk1 . pubkey , pk2 . pubkey ] , locale : $0 ) )
XCTAssertNoThrow ( reacting_to_text ( profiles : damusState . profiles , our_pubkey : damusState . pubkey , group : . repost ( EventGroup ( events : [ repost1 , repost2 , repost3 ] ) ) , ev : test_note , pubkeys : [ pk1 . pubkey , pk2 . pubkey , pk3 . pubkey ] , locale : $0 ) )
2023-02-26 18:01:23 +00:00
}
}
}