summaryrefslogtreecommitdiffhomepage
path: root/gui
diff options
context:
space:
mode:
authorOskar Nyberg <oskar@mullvad.net>2020-06-16 13:38:49 +0200
committerOskar Nyberg <oskar@mullvad.net>2020-06-24 11:23:12 +0200
commitddf0ace17e8ca6cd27aa13c3db63e0d16ae504ba (patch)
treecbc84284548529bdf67512d659986e4aceadb205 /gui
parentaa750c58a4e7dddbfb8b76b4df932b3188461229 (diff)
downloadmullvadvpn-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.ts29
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;
+ });
});