Skip to content
Merged
Changes from 1 commit
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
0e07227
Password Policy Tenant and Project Changes
pragatimodi Mar 13, 2023
d97386a
Adding unit tests for PasswordPolicyAuthConfig
pragatimodi Mar 13, 2023
d154481
Adding Project Config Unit Tests
pragatimodi Mar 14, 2023
828e820
Tenant Unit Tests
pragatimodi Mar 14, 2023
db00ab1
Lint fixes
pragatimodi Mar 14, 2023
62a444f
`npm run api-extractor:local` changes
pragatimodi Mar 14, 2023
a83afc5
1. `npm run api-extractor:local` changes
pragatimodi Mar 14, 2023
7bdbee0
Revert formatting changes
pragatimodi Mar 14, 2023
cf0f30e
Lint changes
pragatimodi Mar 14, 2023
a3af073
Line break lint changes
pragatimodi Mar 14, 2023
1e3a22b
`eslint --fix .` fixes
pragatimodi Mar 14, 2023
4254ddc
1. Changing type of passwordPolicies to PasswordPolicyConfig on Tenan…
pragatimodi Mar 15, 2023
3fc71f8
Minor changes
pragatimodi Mar 17, 2023
537db9e
Changes with approved config
pragatimodi Mar 29, 2023
0291c80
Merge branch 'password-policy' of https://github.com/firebase/firebas…
pragatimodi Mar 29, 2023
46084d1
Merge branch 'master' of https://github.com/firebase/firebase-admin-n…
pragatimodi Mar 30, 2023
b0a01d1
Undo package-lock.json changes
pragatimodi Mar 30, 2023
7ed0df0
Undo package-lock.json changes
pragatimodi Mar 30, 2023
e87cf4b
Undo package-lock.json changes
pragatimodi Mar 30, 2023
ea5edda
Update package-lock.json
pragatimodi Mar 30, 2023
8e7f520
Lint fixes
pragatimodi Mar 30, 2023
f01df33
Merge branch 'password-policy' of https://github.com/firebase/firebas…
pragatimodi Mar 30, 2023
eebc816
Cleanup
pragatimodi Mar 30, 2023
3098765
Merge remote-tracking branch 'origin/password-policy' into password-p…
pragatimodi Mar 30, 2023
e6a881f
Revert package-lock.json
pragatimodi Mar 30, 2023
d112cc6
Update project-config.ts
pragatimodi Mar 30, 2023
b5858c2
Minor formatting
pragatimodi Apr 4, 2023
6645095
Descriptive constants
pragatimodi Apr 4, 2023
a5453cd
Lint fixes
pragatimodi Apr 4, 2023
15022a6
Fix import
pragatimodi Apr 4, 2023
f2289e1
Update test/integration/auth.spec.ts
pragatimodi Apr 4, 2023
ce5d8bc
Apply suggestions from code review
pragatimodi Apr 4, 2023
222196d
Apply suggestions from code review
pragatimodi Apr 5, 2023
2db1735
Integration tests fix
pragatimodi Apr 5, 2023
cfaab07
Merge branch 'password-policy' of https://github.com/firebase/firebas…
pragatimodi Apr 5, 2023
5d0317f
Small fix
pragatimodi Apr 5, 2023
908c874
Reset password policy in integration tests to prevent breaking changes
pragatimodi Apr 6, 2023
f07a561
lint fix
pragatimodi Apr 6, 2023
7f98afd
Merge branch 'master' into password-policy
pragatimodi Apr 6, 2023
088dc00
Merge branch 'master' of https://github.com/firebase/firebase-admin-n…
pragatimodi Apr 24, 2023
363088e
package-lock.json undo changes
pragatimodi Apr 24, 2023
3eab3f6
update merge
pragatimodi Apr 24, 2023
18e6342
lint fixes
pragatimodi Apr 24, 2023
52dafbb
merge fixes
pragatimodi Apr 24, 2023
cb6cf64
Update package-lock.json
pragatimodi Apr 24, 2023
1eed89b
Update package.json
pragatimodi Apr 24, 2023
4db418e
Allow enforcementState `OFF` with default constraints
pragatimodi Apr 25, 2023
9206fa2
Lint fixes
pragatimodi Apr 25, 2023
a5b9188
Merge branch 'password-policy' of https://github.com/firebase/firebas…
pragatimodi Apr 25, 2023
0bdf730
Merge branch 'master' into password-policy
lahirumaramba May 2, 2023
2fd709a
Adding recaptcha to server request
pragatimodi May 3, 2023
59ba4ed
Fill default passwordPolicyVersions values
pragatimodi May 4, 2023
694a336
Lint fix
pragatimodi May 4, 2023
295d71c
Merge branch 'master' into password-policy
pragatimodi May 4, 2023
b4d7907
remove debug logging
pragatimodi May 4, 2023
1a4df37
Merge branch 'password-policy' of https://github.com/firebase/firebas…
pragatimodi May 4, 2023
3897bb2
Merge branch 'master' into password-policy
lahirumaramba May 23, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Descriptive constants
  • Loading branch information
pragatimodi committed Apr 4, 2023
commit 6645095fd2d95f69642b3a151238bc5faa32720b
266 changes: 94 additions & 172 deletions test/integration/auth.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ import {
} from '../../lib/auth/index';
import * as sinon from 'sinon';
import * as sinonChai from 'sinon-chai';
import {SmsRegionConfig} from 'firebase-admin/lib/auth/auth-config';

const chalk = require('chalk'); // eslint-disable-line @typescript-eslint/no-var-requires

Expand Down Expand Up @@ -1207,7 +1208,7 @@ describe('admin.auth', () => {
this.skip(); // getConfig is not supported in Auth Emulator
}
});
const mfaConfig: MultiFactorConfig = {
const mfaSmsEnabledTotpEnabledConfig: MultiFactorConfig = {
state: 'ENABLED',
factorIds: ['phone'],
providerConfigs: [
Expand All @@ -1219,6 +1220,16 @@ describe('admin.auth', () => {
},
],
};
const mfaSmsEnabledTotpDisabledConfig: MultiFactorConfig = {
state: 'ENABLED',
factorIds: ['phone'],
providerConfigs: [
{
state: 'DISABLED',
totpProviderConfig: {},
}
],
}
const passwordConfig: PasswordPolicyConfig = {
enforcementState: 'ENFORCE',
forceUpgradeOnSignin: true,
Expand All @@ -1231,65 +1242,41 @@ describe('admin.auth', () => {
maxLength: 30,
},
}
const smsRegionAllowByDefaultConfig: SmsRegionConfig = {
allowByDefault: {
disallowedRegions: ['AC', 'AD'],
}
}
const smsRegionAllowlistOnlyConfig: SmsRegionConfig = {
allowlistOnly: {
allowedRegions: ['AC', 'AD'],
}
}
const projectConfigOption1: UpdateProjectConfigRequest = {
smsRegionConfig: {
allowByDefault: {
disallowedRegions: ['AC', 'AD'],
}
},
multiFactorConfig: mfaConfig,
smsRegionConfig: smsRegionAllowByDefaultConfig,
multiFactorConfig: mfaSmsEnabledTotpEnabledConfig,
passwordPolicyConfig: passwordConfig,
};
const projectConfigOption2: UpdateProjectConfigRequest = {
smsRegionConfig: {
allowlistOnly: {
allowedRegions: ['AC', 'AD'],
}
},
smsRegionConfig: smsRegionAllowlistOnlyConfig,
};
const projectConfigOptionSmsEnabledTotpDisabled: UpdateProjectConfigRequest = {
smsRegionConfig: projectConfigOption2.smsRegionConfig,
multiFactorConfig: {
state: 'ENABLED',
factorIds: ['phone'],
providerConfigs: [
{
state: 'DISABLED',
totpProviderConfig: {},
}
],
},
smsRegionConfig: smsRegionAllowlistOnlyConfig,
multiFactorConfig: mfaSmsEnabledTotpDisabledConfig,
};
const expectedProjectConfig1: any = {
smsRegionConfig: {
allowByDefault: {
disallowedRegions: ['AC', 'AD'],
}
},
multiFactorConfig: mfaConfig,
smsRegionConfig: smsRegionAllowByDefaultConfig,
multiFactorConfig: mfaSmsEnabledTotpEnabledConfig,
passwordPolicyConfig: passwordConfig,
};
const expectedProjectConfig2: any = {
smsRegionConfig: {
allowlistOnly: {
allowedRegions: ['AC', 'AD'],
}
},
multiFactorConfig: mfaConfig,
smsRegionConfig: smsRegionAllowlistOnlyConfig,
multiFactorConfig: mfaSmsEnabledTotpEnabledConfig,
passwordPolicyConfig: passwordConfig,
};
const expectedProjectConfigSmsEnabledTotpDisabled: any = {
smsRegionConfig: expectedProjectConfig2.smsRegionConfig,
multiFactorConfig: {
state: 'ENABLED',
factorIds: ['phone'],
providerConfigs: [
{
state: 'DISABLED',
totpProviderConfig: {},
}
],
},
smsRegionConfig: smsRegionAllowlistOnlyConfig,
multiFactorConfig: mfaSmsEnabledTotpDisabledConfig,
passwordPolicyConfig: passwordConfig,
};

Expand Down Expand Up @@ -1319,41 +1306,68 @@ describe('admin.auth', () => {
describe('Tenant management operations', () => {
let createdTenantId: string;
const createdTenants: string[] = [];
const mfaSmsEnabledTotpEnabledConfig: MultiFactorConfig = {
state: 'ENABLED',
factorIds: ['phone'],
providerConfigs: [
{
state: 'ENABLED',
totpProviderConfig: {
adjacentIntervals: 5,
},
},
],
};
const mfaSmsEnabledTotpDisabledConfig: MultiFactorConfig = {
state: 'ENABLED',
factorIds: ['phone'],
providerConfigs: [
{
state: 'DISABLED',
totpProviderConfig: {},
}
],
}
const mfaSmsDisabledTotpEnabledConfig: MultiFactorConfig = {
state: 'DISABLED',
factorIds: [],
providerConfigs: [
{
state: 'ENABLED',
totpProviderConfig: {},
}
],
}
const passwordConfig: PasswordPolicyConfig = {
enforcementState: 'ENFORCE',
forceUpgradeOnSignin: true,
constraints: {
requireUppercase: true,
requireLowercase: true,
requireNonAlphanumeric: true,
requireNumeric: true,
minLength: 8,
maxLength: 30,
},
}
const smsRegionAllowByDefaultConfig: SmsRegionConfig = {
allowByDefault: {
disallowedRegions: ['AC', 'AD'],
}
}
const tenantOptions: CreateTenantRequest = {
displayName: 'testTenant1',
emailSignInConfig: {
enabled: true,
passwordRequired: true,
},
multiFactorConfig: {
state: 'ENABLED',
factorIds: ['phone'],
providerConfigs: [
{
state: 'ENABLED',
totpProviderConfig: {
adjacentIntervals: 5,
},
},
],
},
multiFactorConfig: mfaSmsEnabledTotpEnabledConfig,
// Add random phone number / code pairs.
testPhoneNumbers: {
'+16505551234': '019287',
'+16505550676': '985235',
},
passwordPolicyConfig: {
enforcementState: 'ENFORCE',
forceUpgradeOnSignin: true,
constraints: {
requireUppercase: true,
requireLowercase: true,
requireNonAlphanumeric: true,
requireNumeric: true,
minLength: 8,
maxLength: 30,
},
},
passwordPolicyConfig: passwordConfig,
};
const expectedCreatedTenant: any = {
displayName: 'testTenant1',
Expand All @@ -1362,18 +1376,7 @@ describe('admin.auth', () => {
passwordRequired: true,
},
anonymousSignInEnabled: false,
multiFactorConfig: {
state: 'ENABLED',
factorIds: ['phone'],
providerConfigs: [
{
state: 'ENABLED',
totpProviderConfig: {
adjacentIntervals: 5,
},
},
],
},
multiFactorConfig: mfaSmsEnabledTotpEnabledConfig,
// These test phone numbers will not be checked when running integration
// tests against the emulator suite and are ignored in auth emulator
// altogether. For more information, please refer to this section of the
Expand All @@ -1382,18 +1385,7 @@ describe('admin.auth', () => {
'+16505551234': '019287',
'+16505550676': '985235',
},
passwordPolicyConfig: {
enforcementState: 'ENFORCE',
forceUpgradeOnSignin: true,
constraints: {
requireUppercase: true,
requireLowercase: true,
requireNonAlphanumeric: true,
requireNumeric: true,
minLength: 8,
maxLength: 30,
},
},
passwordPolicyConfig: passwordConfig,
};
const expectedUpdatedTenant: any = {
displayName: 'testTenantUpdated',
Expand All @@ -1402,36 +1394,14 @@ describe('admin.auth', () => {
passwordRequired: true,
},
anonymousSignInEnabled: false,
multiFactorConfig: {
state: 'DISABLED',
factorIds: [],
providerConfigs: [
{
state: 'ENABLED',
totpProviderConfig: {
adjacentIntervals: 5,
},
},
],
},
multiFactorConfig: mfaSmsDisabledTotpEnabledConfig,
// Test phone numbers will not be checked when running integration tests
// against emulator suite. For more information, please refer to:
// go/firebase-auth-emulator-dd#heading=h.odk06so2ydjd
testPhoneNumbers: {
'+16505551234': '123456',
},
passwordPolicyConfig: {
enforcementState: 'ENFORCE',
forceUpgradeOnSignin: true,
constraints: {
requireUppercase: true,
requireLowercase: true,
requireNonAlphanumeric: true,
requireNumeric: true,
minLength: 8,
maxLength: 30,
},
},
passwordPolicyConfig: passwordConfig,
};
const expectedUpdatedTenant2: any = {
displayName: 'testTenantUpdated',
Expand All @@ -1440,33 +1410,9 @@ describe('admin.auth', () => {
passwordRequired: false,
},
anonymousSignInEnabled: false,
multiFactorConfig: {
state: 'ENABLED',
factorIds: ['phone'],
providerConfigs: [
{
state: 'ENABLED',
totpProviderConfig: {},
},
],
},
smsRegionConfig: {
allowByDefault: {
disallowedRegions: ['AC', 'AD'],
}
},
passwordPolicyConfig: {
enforcementState: 'ENFORCE',
forceUpgradeOnSignin: true,
constraints: {
requireUppercase: true,
requireLowercase: true,
requireNonAlphanumeric: true,
requireNumeric: true,
minLength: 8,
maxLength: 30,
},
},
multiFactorConfig: mfaSmsEnabledTotpEnabledConfig,
smsRegionConfig: smsRegionAllowByDefaultConfig,
passwordPolicyConfig: passwordConfig,
};
const expectedUpdatedTenantSmsEnabledTotpDisabled: any = {
displayName: 'testTenantUpdated',
Expand All @@ -1475,33 +1421,9 @@ describe('admin.auth', () => {
passwordRequired: false,
},
anonymousSignInEnabled: false,
multiFactorConfig: {
state: 'ENABLED',
factorIds: ['phone'],
providerConfigs: [
{
state: 'DISABLED',
totpProviderConfig: {},
},
],
},
smsRegionConfig: {
allowByDefault: {
disallowedRegions: ['AC', 'AD'],
}
},
passwordPolicyConfig: {
enforcementState: 'ENFORCE',
forceUpgradeOnSignin: true,
constraints: {
requireUppercase: true,
requireLowercase: true,
requireNonAlphanumeric: true,
requireNumeric: true,
minLength: 8,
maxLength: 30,
},
},
multiFactorConfig: mfaSmsEnabledTotpDisabledConfig,
smsRegionConfig: smsRegionAllowByDefaultConfig,
passwordPolicyConfig: passwordConfig,
};

// https://mochajs.org/
Expand Down