Skip to content

Commit

Permalink
chore(portfolio): added clear function to balance manager
Browse files Browse the repository at this point in the history
  • Loading branch information
stackchain committed Apr 27, 2024
1 parent e7c0c5e commit c3b37f9
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 2 deletions.
30 changes: 30 additions & 0 deletions packages/portfolio/src/token-manager.test.ts
Expand Up @@ -91,6 +91,8 @@ describe('portfolioTokenManagerMaker', () => {
expect(resultRnftWhatever.expires).toBeGreaterThan(Date.now())
expect(resultRnftWhatever.hash).toBe('hash3')
expect(resultRnftWhatever.record).toEqual(tokenInfoMocks.rnftWhatever)

manager.destroy()
})

it('should read all from cache', async () => {
Expand Down Expand Up @@ -182,4 +184,32 @@ describe('portfolioTokenManagerMaker', () => {
if (!resultRnftWhatever) fail()
expect(resultRnftWhatever).toEqual(unknownCachedTokenInfo)
})

it('should clear all data in the storage', async () => {
const api = portfolioApiMock.success
const manager = portfolioTokenManagerMaker({api, storage})
const secondaryTokenIds: Portfolio.Token.Id[] = [
tokenInfoMocks.rnftWhatever.id,
]

await manager.sync({secondaryTokenIds, sourceId: 'sourceId'})

expect(
storage.token.infos.read([tokenInfoMocks.rnftWhatever.id]).length,
).toBe(1)

const subscriber = jest.fn()
manager.subscribe(subscriber)

manager.clear({sourceId: 'sourceId'})

expect(storage.token.infos.all().length).toBe(0)

expect(subscriber).toHaveBeenCalledWith({
on: Portfolio.Event.ManagerOn.Clear,
sourceId: 'sourceId',
})

manager.destroy()
})
})
8 changes: 7 additions & 1 deletion packages/portfolio/src/token-manager.ts
Expand Up @@ -74,7 +74,13 @@ export const portfolioTokenManagerMaker = (
return records
}

const clear = () => {}
const clear = ({sourceId}: Portfolio.Event.SourceId) => {
storage.token.infos.clear()
storage.token.discoveries.clear()
cachedInfosWithoutRecord.clear()

observer.notify({on: Portfolio.Event.ManagerOn.Clear, sourceId})
}

const destroy = () => {
observer.destroy()
Expand Down
2 changes: 1 addition & 1 deletion packages/types/src/portfolio/manager.ts
Expand Up @@ -25,7 +25,7 @@ export type PortfolioManagerToken = Readonly<{
observable$: Observable<PortfolioEventTokenManager>

destroy(): void
clear(): void
clear(params: PortfolioEventSourceId): void
}>

export type PortfolioManagerBalance = Readonly<{
Expand Down

0 comments on commit c3b37f9

Please sign in to comment.