Skip to content

Commit fcffd9f

Browse files
authored
Merge pull request #20258 from mozilla/fxa-13336
feat(functional): update smoke tests for otp release
2 parents 2a80472 + eb49573 commit fcffd9f

24 files changed

Lines changed: 110 additions & 73 deletions

.circleci/config.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,7 @@ executors:
177177
# passwordless otp feature
178178
PASSWORDLESS_ENABLED: true
179179
PASSWORDLESS_ALLOWED_CLIENT_SERVICES: '{"98e6508e88680e1a":{"allowedServices":["*"]},"5882386c6d801776":{"allowedServices":["relay"]},"dcdb5ae7add825d2":{"allowedServices":["*"]}}'
180+
PASSWORDLESS_SIGNUP_ENABLED: true
180181
# Seeing if clear customs approach works! RATE_LIMIT__RULES: ""
181182
# RATE_LIMIT__IGNORE_EMAILS: .*@restmail.net$
182183

packages/functional-tests/lib/testAccountTracker.ts

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ enum EmailPrefix {
2626
}
2727

2828
const RELIER_CLIENT_ID = 'dcdb5ae7add825d2';
29+
const SUPPORTED_SERVICE = 'smoketests';
2930

3031
type AccountDetails = {
3132
email: string;
@@ -263,6 +264,7 @@ export class TestAccountTracker {
263264
// Send passwordless code
264265
await this.target.authClient.passwordlessSendCode(email, {
265266
clientId: RELIER_CLIENT_ID,
267+
service: SUPPORTED_SERVICE,
266268
});
267269

268270
// Get OTP from email
@@ -274,6 +276,7 @@ export class TestAccountTracker {
274276
code,
275277
{
276278
clientId: RELIER_CLIENT_ID,
279+
service: SUPPORTED_SERVICE,
277280
}
278281
);
279282

@@ -457,6 +460,7 @@ export class TestAccountTracker {
457460
// Send passwordless code
458461
await this.target.authClient.passwordlessSendCode(account.email, {
459462
clientId: RELIER_CLIENT_ID,
463+
service: SUPPORTED_SERVICE,
460464
});
461465

462466
// Get OTP from email
@@ -470,6 +474,7 @@ export class TestAccountTracker {
470474
code,
471475
{
472476
clientId: RELIER_CLIENT_ID,
477+
service: SUPPORTED_SERVICE,
473478
}
474479
);
475480

@@ -480,10 +485,11 @@ export class TestAccountTracker {
480485
const { getTotpCode } = require('./totp');
481486
const totpCode = await getTotpCode(account.secret);
482487
await this.target.authClient.verifyTotpCode(sessionToken, totpCode);
483-
console.log(
484-
`Verified TOTP for ${account.email} during cleanup`
485-
);
486-
} else if (result.verificationMethod === 'totp-2fa' && account.sessionToken) {
488+
console.log(`Verified TOTP for ${account.email} during cleanup`);
489+
} else if (
490+
result.verificationMethod === 'totp-2fa' &&
491+
account.sessionToken
492+
) {
487493
// Fall back to preserved session token if no TOTP secret available
488494
console.log(
489495
`Using preserved session token for ${account.email} (no TOTP secret)`

packages/functional-tests/pages/signin.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,9 @@ export class SigninPage extends PasskeyPage {
129129
goto(route = '/', params = new URLSearchParams()) {
130130
params.set('forceExperiment', 'generalizedReactApp');
131131
params.set('forceExperimentGroup', 'react');
132+
if (!params.get('force_passwordless')) {
133+
params.set('force_passwordless', 'false');
134+
}
132135
return this.page.goto(
133136
getReactFeatureFlagUrl(this.target, route, params.toString())
134137
);

packages/functional-tests/pages/signup.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,9 @@ export class SignupPage extends BaseLayout {
7070
goto(route = '/', params = new URLSearchParams()) {
7171
params.set('forceExperiment', 'generalizedReactApp');
7272
params.set('forceExperimentGroup', 'react');
73+
if (!params.has('force_passwordless')) {
74+
params.set('force_passwordless', 'false');
75+
}
7376
return this.page.goto(
7477
getReactFeatureFlagUrl(this.target, route, params.toString())
7578
);

packages/functional-tests/tests/cms/cms.spec.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,9 @@ test.describe('severity-1 #smoke', () => {
130130
const credentials = testAccountTracker.generateAccountDetails();
131131

132132
// Navigate to the CMS entrypoint
133-
await relier.goto(`entrypoint=${ENTRYPOINT_123Done}`);
133+
await relier.goto(
134+
`entrypoint=${ENTRYPOINT_123Done}&force_passwordless=false`
135+
);
134136
await relier.clickEmailFirst();
135137

136138
await assertCmsCustomization(page, {

packages/functional-tests/tests/key-stretching-v2/changePassword.spec.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ test.describe('severity-2 #smoke', () => {
5353
const { email, password } = testAccountTracker.generateAccountDetails();
5454
const newPassword = testAccountTracker.generatePassword();
5555
await page.goto(
56-
`${target.contentServerUrl}/?forceExperiment=generalizedReactApp&forceExperimentGroup=react&${signupVersion.query}`
56+
`${target.contentServerUrl}/?force_passwordless=false&forceExperiment=generalizedReactApp&forceExperimentGroup=react&${signupVersion.query}`
5757
);
5858
await signup.fillOutEmailForm(email);
5959
await signup.fillOutSignupForm(password);
@@ -108,7 +108,7 @@ test.describe('severity-2 #smoke', () => {
108108
const { email, password } = testAccountTracker.generateAccountDetails();
109109
const newPassword = testAccountTracker.generatePassword();
110110
await page.goto(
111-
`${target.contentServerUrl}/?forceExperiment=generalizedReactApp&forceExperimentGroup=react&${signupVersion.query}`
111+
`${target.contentServerUrl}/?force_passwordless=false&forceExperiment=generalizedReactApp&forceExperimentGroup=react&${signupVersion.query}`
112112
);
113113
await signup.fillOutEmailForm(email);
114114
await signup.fillOutSignupForm(password);
@@ -120,7 +120,7 @@ test.describe('severity-2 #smoke', () => {
120120

121121
await settings.signOut();
122122
await page.goto(
123-
`${target.contentServerUrl}/?forceExperiment=generalizedReactApp&forceExperimentGroup=react&${signupVersion.query}`
123+
`${target.contentServerUrl}/?force_passwordless=false&forceExperiment=generalizedReactApp&forceExperimentGroup=react&${signupVersion.query}`
124124
);
125125
await signin.fillOutEmailFirstForm(email);
126126
await signin.fillOutPasswordForm(password);

packages/functional-tests/tests/key-stretching-v2/recoveryKey.spec.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ test.describe('severity-2 #smoke', () => {
8080
};
8181
const newPassword = testAccountTracker.generatePassword();
8282
await page.goto(
83-
`${target.contentServerUrl}/?forceExperiment=generalizedReactApp&forceExperimentGroup=react&${signupVersion.query}`
83+
`${target.contentServerUrl}/?force_passwordless=false&forceExperiment=generalizedReactApp&forceExperimentGroup=react&${signupVersion.query}`
8484
);
8585
await page.waitForURL(/\//);
8686
await signup.fillOutEmailForm(accountDetails.email);
@@ -103,7 +103,7 @@ test.describe('severity-2 #smoke', () => {
103103
accountDetails.password
104104
);
105105
await page.goto(
106-
`${target.contentServerUrl}/?forceExperiment=generalizedReactApp&forceExperimentGroup=react&${resetVersion.query}`
106+
`${target.contentServerUrl}/?force_passwordless=false&forceExperiment=generalizedReactApp&forceExperimentGroup=react&${resetVersion.query}`
107107
);
108108
await page.waitForURL(/\//);
109109
await signin.fillOutEmailFirstForm(accountDetails.email);
@@ -151,7 +151,7 @@ test.describe('severity-2 #smoke', () => {
151151

152152
// Attempt to signin
153153
await page.goto(
154-
`${target.contentServerUrl}/?forceExperiment=generalizedReactApp&forceExperimentGroup=react&${signinVersion.query}`
154+
`${target.contentServerUrl}/?force_passwordless=false&forceExperiment=generalizedReactApp&forceExperimentGroup=react&${signinVersion.query}`
155155
);
156156
await page.waitForURL(/\//);
157157
await signin.fillOutEmailFirstForm(accountDetails.email);

packages/functional-tests/tests/key-stretching-v2/recoveryKeyUpgrade.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ test.describe('severity-2 #smoke', () => {
1515
}) => {
1616
const { email, password } = testAccountTracker.generateAccountDetails();
1717
await page.goto(
18-
`${target.contentServerUrl}/?forceExperiment=generalizedReactApp&forceExperimentGroup=react&stretch=1`
18+
`${target.contentServerUrl}/?force_passwordless=false&forceExperiment=generalizedReactApp&forceExperimentGroup=react&stretch=1`
1919
);
2020
await signup.fillOutEmailForm(email);
2121
await signup.fillOutSignupForm(password);
@@ -38,7 +38,7 @@ test.describe('severity-2 #smoke', () => {
3838

3939
await settings.signOut();
4040
await page.goto(
41-
`${target.contentServerUrl}/?forceExperiment=generalizedReactApp&forceExperimentGroup=react&stretch=2`
41+
`${target.contentServerUrl}/?force_passwordless=false&forceExperiment=generalizedReactApp&forceExperimentGroup=react&stretch=2`
4242
);
4343
await signin.fillOutEmailFirstForm(email);
4444
await signin.fillOutPasswordForm(password);

packages/functional-tests/tests/key-stretching-v2/resetPassword.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ test.describe('severity-2 #smoke', () => {
6060
}) => {
6161
const { email, password } = testAccountTracker.generateAccountDetails();
6262
await page.goto(
63-
`${target.contentServerUrl}/?forceExperiment=generalizedReactApp&forceExperimentGroup=react&${signupVersion.query}`
63+
`${target.contentServerUrl}/?force_passwordless=false&forceExperiment=generalizedReactApp&forceExperimentGroup=react&${signupVersion.query}`
6464
);
6565
await signup.fillOutEmailForm(email);
6666
await signup.fillOutSignupForm(password);
@@ -78,7 +78,7 @@ test.describe('severity-2 #smoke', () => {
7878
password
7979
);
8080
await page.goto(
81-
`${target.contentServerUrl}/?forceExperiment=generalizedReactApp&forceExperimentGroup=react&${resetVersion.query}`
81+
`${target.contentServerUrl}/?force_passwordless=false&forceExperiment=generalizedReactApp&forceExperimentGroup=react&${resetVersion.query}`
8282
);
8383
await signin.fillOutEmailFirstForm(email);
8484
await signin.fillOutPasswordForm(password);

packages/functional-tests/tests/key-stretching-v2/signinBlocked.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ test.describe('severity-2 #smoke', () => {
4646
const { email, password } =
4747
testAccountTracker.generateBlockedAccountDetails();
4848
await page.goto(
49-
`${target.contentServerUrl}/?forceExperiment=generalizedReactApp&forceExperimentGroup=react&${signupVersion.query}`
49+
`${target.contentServerUrl}/?force_passwordless=false&forceExperiment=generalizedReactApp&forceExperimentGroup=react&${signupVersion.query}`
5050
);
5151
await signup.fillOutEmailForm(email);
5252
await signup.fillOutSignupForm(password);
@@ -58,7 +58,7 @@ test.describe('severity-2 #smoke', () => {
5858

5959
await settings.signOut();
6060
await page.goto(
61-
`${target.contentServerUrl}/?forceExperiment=generalizedReactApp&forceExperimentGroup=react&${signinVersion.query}`
61+
`${target.contentServerUrl}/?force_passwordless=false&forceExperiment=generalizedReactApp&forceExperimentGroup=react&${signinVersion.query}`
6262
);
6363
await signin.fillOutEmailFirstForm(email);
6464
await signin.fillOutPasswordForm(password);

0 commit comments

Comments
 (0)