Skip to content

Commit

Permalink
Recapcha integ test (#1599)
Browse files Browse the repository at this point in the history
* Added integ test for Project Config and Tenants update on reCAPTCHA config
  • Loading branch information
Xiaoshouzi-gh committed Apr 11, 2023
1 parent e63fdb5 commit e9592b9
Showing 1 changed file with 92 additions and 0 deletions.
92 changes: 92 additions & 0 deletions test/integration/auth.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1298,6 +1298,56 @@ describe('admin.auth', () => {
});
});

describe('Project config management operations', () => {
before(function() {
if (authEmulatorHost) {
this.skip(); // getConfig is not supported in Auth Emulator
}
});
const projectConfigOption1: UpdateProjectConfigRequest = {
recaptchaConfig: {
emailPasswordEnforcementState: 'AUDIT',
managedRules: [{ endScore: 0.1, action: 'BLOCK' }],
},
};
const projectConfigOption2: UpdateProjectConfigRequest = {
recaptchaConfig: {
emailPasswordEnforcementState: 'OFF',
},
};
const expectedProjectConfig1: any = {
recaptchaConfig: {
emailPasswordEnforcementState: 'AUDIT',
managedRules: [{ endScore: 0.1, action: 'BLOCK' }],
},
};
const expectedProjectConfig2: any = {
recaptchaConfig: {
emailPasswordEnforcementState: 'OFF',
managedRules: [{ endScore: 0.1, action: 'BLOCK' }],
},
};

it('updateProjectConfig() should resolve with the updated project config', () => {
return getAuth().projectConfigManager().updateProjectConfig(projectConfigOption1)
.then((actualProjectConfig) => {
expect(actualProjectConfig.toJSON()).to.deep.equal(expectedProjectConfig1);
return getAuth().projectConfigManager().updateProjectConfig(projectConfigOption2);
})
.then((actualProjectConfig) => {
expect(actualProjectConfig.toJSON()).to.deep.equal(expectedProjectConfig2);
});
});

it('getProjectConfig() should resolve with expected project config', () => {
return getAuth().projectConfigManager().getProjectConfig()
.then((actualConfig) => {
const actualConfigObj = actualConfig.toJSON();
expect(actualConfigObj).to.deep.equal(expectedProjectConfig2);
});
});
});

describe('Tenant management operations', () => {
let createdTenantId: string;
const createdTenants: string[] = [];
Expand Down Expand Up @@ -1378,6 +1428,15 @@ describe('admin.auth', () => {
testPhoneNumbers: {
'+16505551234': '123456',
},
recaptchaConfig: {
emailPasswordEnforcementState: 'AUDIT',
managedRules: [
{
endScore: 0.3,
action: 'BLOCK',
},
],
},
};
const expectedUpdatedTenant2: any = {
displayName: 'testTenantUpdated',
Expand Down Expand Up @@ -1424,6 +1483,15 @@ describe('admin.auth', () => {
disallowedRegions: ['AC', 'AD'],
}
},
recaptchaConfig: {
emailPasswordEnforcementState: 'OFF',
managedRules: [
{
endScore: 0.3,
action: 'BLOCK',
},
],
},
};

// https://mochajs.org/
Expand Down Expand Up @@ -1836,6 +1904,7 @@ describe('admin.auth', () => {
},
multiFactorConfig: deepCopy(expectedUpdatedTenant.multiFactorConfig),
testPhoneNumbers: deepCopy(expectedUpdatedTenant.testPhoneNumbers),
recaptchaConfig: deepCopy(expectedUpdatedTenant.recaptchaConfig),
};
const updatedOptions2: UpdateTenantRequest = {
emailSignInConfig: {
Expand All @@ -1846,6 +1915,7 @@ describe('admin.auth', () => {
// Test clearing of phone numbers.
testPhoneNumbers: null,
smsRegionConfig: deepCopy(expectedUpdatedTenant2.smsRegionConfig),
recaptchaConfig: deepCopy(expectedUpdatedTenant2.recaptchaConfig),
};
if (authEmulatorHost) {
return getAuth().tenantManager().updateTenant(createdTenantId, updatedOptions)
Expand Down Expand Up @@ -1914,11 +1984,31 @@ describe('admin.auth', () => {
});
}
return getAuth().tenantManager().updateTenant(createdTenantId, updateRequestNoMfaConfig)
});

it('updateTenant() should not update tenant reCAPTCHA config is undefined', () => {
expectedUpdatedTenant.tenantId = createdTenantId;
const updatedOptions2: UpdateTenantRequest = {
displayName: expectedUpdatedTenant2.displayName,
recaptchaConfig: undefined,
};
if (authEmulatorHost) {
return getAuth().tenantManager().updateTenant(createdTenantId, updatedOptions2)
.then((actualTenant) => {
const actualTenantObj = actualTenant.toJSON();
// Not supported in Auth Emulator
delete (actualTenantObj as { testPhoneNumbers?: Record<string, string> }).testPhoneNumbers;
delete expectedUpdatedTenant2.testPhoneNumbers;
expect(actualTenantObj).to.deep.equal(expectedUpdatedTenant2);
});
}
return getAuth().tenantManager().updateTenant(createdTenantId, updatedOptions2)
.then((actualTenant) => {
expect(actualTenant.toJSON()).to.deep.equal(expectedUpdatedTenant2);
});
});

<<<<<<< HEAD
it('updateTenant() should not disable SMS MFA when TOTP is disabled', () => {
expectedUpdatedTenantSmsEnabledTotpDisabled.tenantId = createdTenantId;
const updateRequestSMSEnabledTOTPDisabled: UpdateTenantRequest = {
Expand Down Expand Up @@ -1950,6 +2040,8 @@ describe('admin.auth', () => {
});
});

=======
>>>>>>> 50ef232 (Recapcha integ test (#1599))
it('updateTenant() should be able to enable/disable anon provider', async () => {
const tenantManager = getAuth().tenantManager();
let tenant = await tenantManager.createTenant({
Expand Down

0 comments on commit e9592b9

Please sign in to comment.