From 0b956a71b97f009676a5357e25799d422627e608 Mon Sep 17 00:00:00 2001 From: Ali BARIN Date: Mon, 7 Oct 2024 13:25:04 +0000 Subject: [PATCH] test(models/app-auth-client): improve decrypt data test cases --- .../src/models/app-auth-client.test.js | 51 +++++++++++++++---- 1 file changed, 40 insertions(+), 11 deletions(-) diff --git a/packages/backend/src/models/app-auth-client.test.js b/packages/backend/src/models/app-auth-client.test.js index 043117cd..d95ade3d 100644 --- a/packages/backend/src/models/app-auth-client.test.js +++ b/packages/backend/src/models/app-auth-client.test.js @@ -41,7 +41,14 @@ describe('AppAuthClient model', () => { appAuthClient.formattedAuthDefaults = formattedAuthDefaults; appAuthClient.encryptData(); - expect(appAuthClient.authDefaults).toBeDefined(); + const expectedDecryptedValue = JSON.parse( + AES.decrypt( + appAuthClient.authDefaults, + appConfig.encryptionKey + ).toString(enc) + ); + + expect(formattedAuthDefaults).toStrictEqual(expectedDecryptedValue); expect(appAuthClient.authDefaults).not.toEqual(formattedAuthDefaults); }); @@ -63,20 +70,42 @@ describe('AppAuthClient model', () => { }); }); - it('decryptData should decrypt authDefaults and set it to formattedAuthDefaults', async () => { - const formattedAuthDefaults = { - key: 'value', - }; + describe('decryptData', () => { + it('should return undefined if eligibleForDecryption is not true', () => { + vi.spyOn( + AppAuthClient.prototype, + 'eligibleForDecryption' + ).mockReturnValue(false); - const appAuthClient = await createAppAuthClient({ - formattedAuthDefaults, + const appAuthClient = new AppAuthClient(); + + expect(appAuthClient.decryptData()).toBeUndefined(); }); - const refetchedAppAuthClient = await appAuthClient.$query(); + it('should decrypt authDefaults and set it to formattedAuthDefaults', async () => { + vi.spyOn( + AppAuthClient.prototype, + 'eligibleForDecryption' + ).mockReturnValue(true); - expect(refetchedAppAuthClient.formattedAuthDefaults).toStrictEqual( - formattedAuthDefaults - ); + const formattedAuthDefaults = { + key: 'value', + }; + + const authDefaults = AES.encrypt( + JSON.stringify(formattedAuthDefaults), + appConfig.encryptionKey + ).toString(); + + const appAuthClient = new AppAuthClient(); + appAuthClient.authDefaults = authDefaults; + appAuthClient.decryptData(); + + expect(appAuthClient.formattedAuthDefaults).toStrictEqual( + formattedAuthDefaults + ); + expect(appAuthClient.authDefaults).not.toEqual(formattedAuthDefaults); + }); }); describe('eligibleForEncryption', () => {