diff options
| author | Oskar Nyberg <oskar@mullvad.net> | 2020-06-16 13:38:49 +0200 |
|---|---|---|
| committer | Oskar Nyberg <oskar@mullvad.net> | 2020-06-24 11:23:12 +0200 |
| commit | ddf0ace17e8ca6cd27aa13c3db63e0d16ae504ba (patch) | |
| tree | cbc84284548529bdf67512d659986e4aceadb205 /gui | |
| parent | aa750c58a4e7dddbfb8b76b4df932b3188461229 (diff) | |
| download | mullvadvpn-ddf0ace17e8ca6cd27aa13c3db63e0d16ae504ba.tar.xz mullvadvpn-ddf0ace17e8ca6cd27aa13c3db63e0d16ae504ba.zip | |
Add test for account data fetch one minute before expiry
Diffstat (limited to 'gui')
| -rw-r--r-- | gui/test/account-data-cache.spec.ts | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/gui/test/account-data-cache.spec.ts b/gui/test/account-data-cache.spec.ts index bec1c6ef91..770b3ca1f4 100644 --- a/gui/test/account-data-cache.spec.ts +++ b/gui/test/account-data-cache.spec.ts @@ -232,4 +232,33 @@ describe('IAccountData cache', () => { expect(fetchSpy).to.have.been.called.once; }); }); + + it('should refetch one minute before expiry', async () => { + const date = new Date(); + date.setMinutes(date.getMinutes() + 3); + const expiry = date.toISOString(); + + const update = new Promise((resolve, reject) => { + let firstAttempt = true; + const fetch = () => { + if (firstAttempt) { + firstAttempt = false; + setTimeout(() => clock.tick(120_000), 0); + return Promise.resolve({ expiry }); + } else { + resolve(); + return Promise.resolve({ expiry }); + } + }; + + const cache = new AccountDataCache(fetch, () => {}); + + cache.fetch(dummyAccountToken, { + onFinish: () => {}, + onError: (_error: Error) => reject(), + }); + }); + + return expect(update).to.eventually.be.fulfilled; + }); }); |
