From 1d7d075b82fd24ea3c214bd304cefe4ba5d8be5c Mon Sep 17 00:00:00 2001 From: Denis DelGrosso <85250797+ddelgrosso1@users.noreply.github.com> Date: Wed, 1 Jun 2022 09:41:14 -0400 Subject: [PATCH] tests: add retry logic to ACL tests that rely on eventual consistency (#1974) --- system-test/storage.ts | 40 ++++++++++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/system-test/storage.ts b/system-test/storage.ts index 94b733c8d..92279469c 100644 --- a/system-test/storage.ts +++ b/system-test/storage.ts @@ -1015,19 +1015,35 @@ describe('storage', () => { await file.save('data', {resumable: false}); }); - it('should fail to get file ACL', () => { - return assert.rejects( - () => file.acl.get(), - validateUniformBucketLevelAccessEnabledError - ); - }); + it('should fail to get file ACL', async () => { + // Setting uniform bucket level access is eventually consistent and may take up to a minute to be reflected + for (;;) { + try { + await file.acl.get(); + await new Promise(res => setTimeout(res, UNIFORM_ACCESS_WAIT_TIME)); + } catch (err) { + assert( + validateUniformBucketLevelAccessEnabledError(err as ApiError) + ); + break; + } + } + }).timeout(UNIFORM_ACCESS_TIMEOUT); - it('should fail to update file ACL', () => { - return assert.rejects( - () => file.acl.update(customAcl), - validateUniformBucketLevelAccessEnabledError - ); - }); + it('should fail to update file ACL', async () => { + // Setting uniform bucket level access is eventually consistent and may take up to a minute to be reflected + for (;;) { + try { + await file.acl.update(customAcl); + await new Promise(res => setTimeout(res, UNIFORM_ACCESS_WAIT_TIME)); + } catch (err) { + assert( + validateUniformBucketLevelAccessEnabledError(err as ApiError) + ); + break; + } + } + }).timeout(UNIFORM_ACCESS_TIMEOUT); }); describe('preserves bucket/file ACL over uniform bucket-level access on/off', () => {