Skip to content
This repository has been archived by the owner on May 10, 2024. It is now read-only.

Commit

Permalink
fix unit tests in portfolio store and nft store
Browse files Browse the repository at this point in the history
  • Loading branch information
nuo-xu committed Feb 6, 2024
1 parent 56b6ac2 commit 70c286f
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 4 deletions.
16 changes: 14 additions & 2 deletions Tests/BraveWalletTests/NFTStoreTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import Preferences
class NFTStoreTests: XCTestCase {

private var cancellables: Set<AnyCancellable> = .init()
private var isLocked = true

let ethNetwork: BraveWallet.NetworkInfo = .mockMainnet
let ethAccount1: BraveWallet.AccountInfo = .mockEthAccount
Expand Down Expand Up @@ -48,9 +49,9 @@ class NFTStoreTests: XCTestCase {
) -> (BraveWallet.TestKeyringService, BraveWallet.TestJsonRpcService, BraveWallet.TestBraveWalletService, BraveWallet.TestAssetRatioService, TestableWalletUserAssetManager, BraveWallet.TestTxService) {
let keyringService = BraveWallet.TestKeyringService()
keyringService._addObserver = { _ in }
keyringService._isLocked = { completion in
keyringService._isLocked = { [weak self] completion in
// unlocked would cause `update()` from call in `init` to be called prior to test being setup.g
completion(true)
completion(self?.isLocked ?? true)
}
keyringService._allAccounts = {
$0(.init(
Expand Down Expand Up @@ -164,9 +165,11 @@ class NFTStoreTests: XCTestCase {

override func setUp() {
resetFilters()
isLocked = true
}
override func tearDown() {
resetFilters()
isLocked = true
}
private func resetFilters() {
Preferences.Wallet.groupByFilter.reset()
Expand Down Expand Up @@ -236,6 +239,7 @@ class NFTStoreTests: XCTestCase {
XCTAssertNil(visibleNFTs[safe: 2]?.nftMetadata)
}.store(in: &cancellables)

isLocked = false
store.update()
await fulfillment(of: [userVisibleNFTsException], timeout: 1)
cancellables.removeAll()
Expand Down Expand Up @@ -414,6 +418,7 @@ class NFTStoreTests: XCTestCase {
XCTAssertEqual(hiddenNFTs[safe: 0]?.nftMetadata?.imageURLString, self.mockERC721Metadata.imageURLString)
XCTAssertEqual(hiddenNFTs[safe: 0]?.nftMetadata?.name, self.mockERC721Metadata.name)
}.store(in: &cancellables)
isLocked = false
store.update()
await fulfillment(of: [userHiddenNFTsException], timeout: 1)
cancellables.removeAll()
Expand Down Expand Up @@ -483,6 +488,7 @@ class NFTStoreTests: XCTestCase {
XCTAssertEqual(spamNFTs[safe: 0]?.nftMetadata?.name, self.mockERC721Metadata.name)
}.store(in: &cancellables)

isLocked = false
store.fetchJunkNFTs()
await fulfillment(of: [userSpamNFTsException], timeout: 1)
cancellables.removeAll()
Expand Down Expand Up @@ -554,6 +560,7 @@ class NFTStoreTests: XCTestCase {
XCTAssertEqual(spamNFTs[safe: 1]?.nftMetadata?.name, self.mockERC721Metadata.name)
}.store(in: &cancellables)

isLocked = false
store.fetchJunkNFTs()
await fulfillment(of: [userSpamNFTsException], timeout: 1)
cancellables.removeAll()
Expand Down Expand Up @@ -623,6 +630,7 @@ class NFTStoreTests: XCTestCase {
XCTAssertEqual(spamNFTs[safe: 0]?.nftMetadata?.name, self.mockERC721Metadata.name)
}.store(in: &cancellables)

isLocked = false
store.fetchJunkNFTs()
await fulfillment(of: [userSpamNFTsException], timeout: 1)
cancellables.removeAll()
Expand Down Expand Up @@ -686,6 +694,7 @@ class NFTStoreTests: XCTestCase {
XCTAssertEqual(groupTwoVisibleNFTs[safe: 0]?.token.symbol, mockEthUserAssets[safe: 2]?.symbol)
XCTAssertTrue(groupThreeVisibleNFTs.isEmpty)
}.store(in: &cancellables)
isLocked = false
store.saveFilters(.init(
groupBy: .accounts,
sortOrder: defaultFilters.sortOrder,
Expand Down Expand Up @@ -780,6 +789,7 @@ class NFTStoreTests: XCTestCase {
XCTAssertEqual(groupTwoHiddenNFTs[safe: 0]?.nftMetadata?.name, self.mockERC721Metadata.name)
XCTAssertEqual(groupThreeHiddenNFTs.count, 0)
}.store(in: &cancellables)
isLocked = false
store.saveFilters(.init(
groupBy: .accounts,
sortOrder: defaultFilters.sortOrder,
Expand Down Expand Up @@ -849,6 +859,7 @@ class NFTStoreTests: XCTestCase {
XCTAssertEqual(groupTwoVisibleNFTs.count, 1)
XCTAssertEqual(groupTwoVisibleNFTs[safe: 0]?.token.symbol, mockEthUserAssets[safe: 2]?.symbol)
}.store(in: &cancellables)
isLocked = false
store.saveFilters(.init(
groupBy: .networks,
sortOrder: defaultFilters.sortOrder,
Expand Down Expand Up @@ -937,6 +948,7 @@ class NFTStoreTests: XCTestCase {
XCTAssertEqual(groupTwoHiddenNFTs[safe: 0]?.nftMetadata?.imageURLString, self.mockERC721Metadata.imageURLString)
XCTAssertEqual(groupTwoHiddenNFTs[safe: 0]?.nftMetadata?.name, self.mockERC721Metadata.name)
}.store(in: &cancellables)
isLocked = false
store.saveFilters(.init(
groupBy: .networks,
sortOrder: defaultFilters.sortOrder,
Expand Down
16 changes: 14 additions & 2 deletions Tests/BraveWalletTests/PortfolioStoreTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,15 @@ import Preferences

private var cancellables: Set<AnyCancellable> = .init()
private let currencyFormatter = NumberFormatter().then { $0.numberStyle = .currency }
private var isLocked = true

override func setUp() {
resetFilters()
isLocked = true
}
override func tearDown() {
resetFilters()
isLocked = true
}
private func resetFilters() {
Preferences.Wallet.showTestNetworks.reset()
Expand Down Expand Up @@ -172,9 +175,9 @@ import Preferences
// setup test services
let keyringService = BraveWallet.TestKeyringService()
keyringService._addObserver = { _ in }
keyringService._isLocked = { completion in
keyringService._isLocked = { [weak self] completion in
// unlocked would cause `update()` from call in `init` to be called prior to test being setup.g
completion(true)
completion(self?.isLocked ?? true)
}
keyringService._allAccounts = {
$0(.init(
Expand All @@ -201,6 +204,8 @@ import Preferences
completion([self.filMainnet, self.filTestnet])
case .btc:
XCTFail("Should not fetch bitcoin network")
case .zec:
XCTFail("Should not fetch zcash network")
@unknown default:
XCTFail("Should not fetch unknown network")
}
Expand Down Expand Up @@ -384,6 +389,7 @@ import Preferences
XCTAssertFalse(isLoadingUpdates[1])
}
.store(in: &cancellables)
isLocked = false
store.update()
await fulfillment(of: [assetGroupsExpectation, balanceExpectation, isLoadingBalancesExpectation], timeout: 1)
cancellables.removeAll()
Expand Down Expand Up @@ -442,6 +448,7 @@ import Preferences
String(format: "%.04f", self.mockETHBalanceAccount1))
}.store(in: &cancellables)

isLocked = false
// change sort to ascending
store.saveFilters(.init(
groupBy: store.filters.groupBy,
Expand Down Expand Up @@ -505,6 +512,7 @@ import Preferences
// USDC (value = $0.04), hidden
XCTAssertNil(group.assets[safe: 4])
}.store(in: &cancellables)
isLocked = false
store.saveFilters(.init(
groupBy: store.filters.groupBy,
sortOrder: .valueDesc,
Expand Down Expand Up @@ -574,6 +582,7 @@ import Preferences
self.goerliNetwork.nativeToken.symbol)
XCTAssertEqual(group.assets[safe: 5]?.quantity, String(format: "%.04f", 0))
}.store(in: &cancellables)
isLocked = false
store.saveFilters(.init(
groupBy: store.filters.groupBy,
sortOrder: .valueDesc,
Expand Down Expand Up @@ -646,6 +655,7 @@ import Preferences
})
XCTAssertTrue(noAssetsAreNFTs)
}.store(in: &cancellables)
isLocked = false
store.saveFilters(.init(
groupBy: store.filters.groupBy,
sortOrder: .valueDesc,
Expand Down Expand Up @@ -769,6 +779,7 @@ import Preferences
XCTAssertTrue(noAssetsAreNFTs)
}
.store(in: &cancellables)
isLocked = false
store.saveFilters(.init(
groupBy: .accounts,
sortOrder: store.filters.sortOrder,
Expand Down Expand Up @@ -939,6 +950,7 @@ import Preferences
XCTAssertTrue(noAssetsAreNFTs)
}
.store(in: &cancellables)
isLocked = false
store.saveFilters(.init(
groupBy: .networks,
sortOrder: store.filters.sortOrder,
Expand Down

0 comments on commit 70c286f

Please sign in to comment.