| 
7 | 7 | import { expect, test } from '@playwright/test';  | 
8 | 8 | import { password } from './utils/demo-user.js';  | 
9 | 9 | 
 
  | 
10 |  | -test('Login - add email device - authenticate with email device', async ({ page }) => {  | 
11 |  | -  /** Go to page */  | 
12 |  | -  await page.goto('/?clientId=20dd0ed0-bb9b-4c8f-9a60-9ebeb4b348e0');  | 
 | 10 | +test.describe('Device registration tests', () => {  | 
 | 11 | +  const username = '[email protected]';  | 
13 | 12 | 
 
  | 
14 |  | -  expect(page.url()).toContain(  | 
15 |  | -    'http://localhost:5829/?clientId=20dd0ed0-bb9b-4c8f-9a60-9ebeb4b348e',  | 
16 |  | -  );  | 
17 |  | -  /**  | 
18 |  | -   * Register a new user  | 
19 |  | -   */  | 
20 |  | -  await page.goto('http://localhost:5829/?clientId=20dd0ed0-bb9b-4c8f-9a60-9ebeb4b348e0');  | 
21 |  | -  await expect(page.getByRole('button', { name: 'USER_REGISTRATION' })).toBeVisible();  | 
22 |  | -  await page.getByRole('button', { name: 'USER_REGISTRATION' }).click();  | 
23 |  | -  await page.getByRole('textbox', { name: 'Email' }).click();  | 
24 |  | -  await page.getByRole('textbox', { name:  'Email' }).fill('[email protected]');  | 
25 |  | -  await page.getByRole('textbox', { name: 'Password' }).fill('U.QPDWEN47ZMyJhCDmhGLK*nr');  | 
26 |  | -  await page.getByRole('textbox', { name: 'Given Name' }).fill('demouser');  | 
27 |  | -  await page.getByRole('textbox', { name: 'Family Name' }).fill('demouser');  | 
28 |  | -  expect(await page.getByRole('button', { name: 'Continue' })).toBeVisible();  | 
29 |  | -  await page.getByRole('button', { name: 'Continue' }).click();  | 
30 |  | -  await expect(page.getByRole('heading', { name: 'Registration Complete' })).toBeVisible();  | 
31 |  | -  await page.getByRole('button').click();  | 
32 |  | -  await page.getByRole('button', { name: 'Logout' }).click();  | 
33 |  | -  /***  | 
34 |  | -   * Login with the new user  | 
35 |  | -   **/  | 
36 |  | -  await page.goto('http://localhost:5829/?clientId=20dd0ed0-bb9b-4c8f-9a60-9ebeb4b348e0');  | 
37 |  | -  await page.getByRole('button', { name: 'USER_LOGIN' }).click();  | 
38 |  | -  await page.getByText('SDK Automation - Sign On');  | 
39 |  | -  await page.getByRole('textbox', { name:  'Username' }).fill('[email protected]');  | 
40 |  | -  await page.getByRole('textbox', { name: 'Password' }).fill(password);  | 
41 |  | -  await page.getByRole('button', { name: 'Sign On' }).click();  | 
 | 13 | +  test.afterEach(async ({ page }) => {  | 
 | 14 | +    await page.goto('/?clientId=20dd0ed0-bb9b-4c8f-9a60-9ebeb4b348e0');  | 
42 | 15 | 
 
  | 
43 |  | -  /** Register a device */  | 
44 |  | -  await page.getByText('Select Test Form');  | 
45 |  | -  await page.getByRole('button', { name: 'DEVICE_REGISTRATION' }).click();  | 
46 |  | -  await page.getByText('SDK Automation - Device Registration');  | 
47 |  | -  await page.getByRole('button', { name: 'Email' }).click();  | 
48 |  | -  await page.getByText('SDK Automation - Device Registration');  | 
49 |  | -  await page.getByRole('textbox', { name:  'Email Address' }).fill('[email protected]');  | 
50 |  | -  await page.getByRole('button', { name: 'Submit' }).click();  | 
51 |  | -  await expect(page.getByText('EMAIL MFA Registered')).toBeVisible();  | 
52 |  | -  await page.getByRole('button').click();  | 
 | 16 | +    await page.getByRole('button', { name: 'USER_LOGIN' }).click();  | 
 | 17 | +    await page.getByRole('textbox', { name: 'Username' }).fill(username);  | 
 | 18 | +    await page.getByRole('textbox', { name: 'Password' }).fill(password);  | 
 | 19 | +    await page.getByRole('button', { name: 'Sign On' }).click();  | 
53 | 20 | 
 
  | 
54 |  | -  /** Authenticate with the Device */  | 
55 |  | -  await page.getByRole('button', { name: 'DEVICE_AUTHENTICATION' }).click();  | 
56 |  | -  await page.getByText('SDK Automation - Device Authentication');  | 
57 |  | -  await page.getByRole('button', { name: 'Email' }).click();  | 
58 |  | -  await page.getByRole('button', { name: 'USER_DELETE' }).click();  | 
59 |  | -  await page.getByRole('heading', { name: 'Success' });  | 
60 |  | -  await page.getByRole('button', { name: 'Start over' }).click();  | 
61 |  | -});  | 
 | 21 | +    await page.getByRole('button', { name: 'USER_DELETE' }).click();  | 
 | 22 | +    await expect(page.getByRole('heading', { name: 'Success' })).toBeVisible();  | 
 | 23 | +  });  | 
 | 24 | + | 
 | 25 | +  test('Login - add email device - authenticate with email device', async ({ page }) => {  | 
 | 26 | +    /** Go to page */  | 
 | 27 | +    await page.goto('/?clientId=20dd0ed0-bb9b-4c8f-9a60-9ebeb4b348e0');  | 
 | 28 | + | 
 | 29 | +    expect(page.url()).toContain(  | 
 | 30 | +      'http://localhost:5829/?clientId=20dd0ed0-bb9b-4c8f-9a60-9ebeb4b348e',  | 
 | 31 | +    );  | 
 | 32 | +    await expect(page.getByText('Select Test Form')).toBeVisible();  | 
 | 33 | + | 
 | 34 | +    /**  | 
 | 35 | +     * Register a new user  | 
 | 36 | +     */  | 
 | 37 | +    await page.getByRole('button', { name: 'USER_REGISTRATION' }).click();  | 
 | 38 | +    await page.getByRole('textbox', { name: 'Email' }).fill(username);  | 
 | 39 | +    await page.getByRole('textbox', { name: 'Password' }).fill(password);  | 
 | 40 | +    await page.getByRole('textbox', { name: 'Given Name' }).fill('demouser');  | 
 | 41 | +    await page.getByRole('textbox', { name: 'Family Name' }).fill('demouser');  | 
 | 42 | +    await page.getByRole('button', { name: 'Continue' }).click();  | 
 | 43 | +    await expect(page.getByRole('heading', { name: 'Registration Complete' })).toBeVisible();  | 
 | 44 | +    await page.getByRole('button', { name: 'Continue' }).click();  | 
 | 45 | +    await page.getByRole('button', { name: 'Logout' }).click();  | 
 | 46 | + | 
 | 47 | +    /***  | 
 | 48 | +     * Login with the new user  | 
 | 49 | +     **/  | 
 | 50 | +    await page.goto('/?clientId=20dd0ed0-bb9b-4c8f-9a60-9ebeb4b348e0');  | 
 | 51 | +    await page.getByRole('button', { name: 'USER_LOGIN' }).click();  | 
 | 52 | +    await expect(page.getByText('SDK Automation - Sign On')).toBeVisible();  | 
 | 53 | +    await page.getByRole('textbox', { name: 'Username' }).fill(username);  | 
 | 54 | +    await page.getByRole('textbox', { name: 'Password' }).fill(password);  | 
 | 55 | +    await page.getByRole('button', { name: 'Sign On' }).click();  | 
62 | 56 | 
 
  | 
63 |  | -// This test is failing due to a new phone number feature flag for pre-filling country codes.  | 
64 |  | -// A fix will be addressed in https://pingidentity.atlassian.net/browse/SDKS-4200  | 
65 |  | -test.skip('Login - add phone device - authenticate with phone device', async ({ page }) => {  | 
66 |  | -  await page.goto('/?clientId=20dd0ed0-bb9b-4c8f-9a60-9ebeb4b348e0');  | 
67 |  | -  /***  | 
68 |  | -   * Go to page  | 
69 |  | -   ***/  | 
70 |  | -  expect(page.url()).toContain(  | 
71 |  | -    'http://localhost:5829/?clientId=20dd0ed0-bb9b-4c8f-9a60-9ebeb4b348e0',  | 
72 |  | -  );  | 
 | 57 | +    /** Register a device */  | 
 | 58 | +    await expect(page.getByText('Select Test Form')).toBeVisible();  | 
 | 59 | +    await page.getByRole('button', { name: 'DEVICE_REGISTRATION' }).click();  | 
 | 60 | +    await expect(page.getByText('SDK Automation - Device Registration')).toBeVisible();  | 
 | 61 | +    await page.getByRole('button', { name: 'Email' }).click();  | 
 | 62 | +    await page  | 
 | 63 | +      .getByRole('textbox', { name: 'Email Address' })  | 
 | 64 | + | 
 | 65 | +    await page.getByRole('button', { name: 'Submit' }).click();  | 
 | 66 | +    await expect(page.getByText('EMAIL MFA Registered')).toBeVisible();  | 
 | 67 | +    await page.getByRole('button', { name: 'Continue' }).click();  | 
 | 68 | +  });  | 
73 | 69 | 
 
  | 
74 |  | -  /**  | 
75 |  | -   * Register a new user  | 
76 |  | -   **/  | 
77 |  | -  await page.goto('http://localhost:5829/?clientId=20dd0ed0-bb9b-4c8f-9a60-9ebeb4b348e0');  | 
78 |  | -  await expect(page.getByRole('button', { name: 'USER_REGISTRATION' })).toBeVisible();  | 
79 |  | -  await page.getByRole('button', { name: 'USER_REGISTRATION' }).click();  | 
80 |  | -  await page.getByRole('textbox', { name: 'Email' }).click();  | 
81 |  | -  await page.getByRole('textbox', { name:  'Email' }).fill('[email protected]');  | 
82 |  | -  await page.getByRole('textbox', { name: 'Password' }).fill('U.QPDWEN47ZMyJhCDmhGLK*nr');  | 
83 |  | -  await page.getByRole('textbox', { name: 'Given Name' }).fill('demouser');  | 
84 |  | -  await page.getByRole('textbox', { name: 'Family Name' }).fill('demouser');  | 
85 |  | -  expect(await page.getByRole('button', { name: 'Continue' })).toBeVisible();  | 
86 |  | -  await page.getByRole('button', { name: 'Continue' }).click();  | 
87 |  | -  await expect(page.getByRole('heading', { name: 'Registration Complete' })).toBeVisible();  | 
88 |  | -  await page.getByRole('button').click();  | 
89 |  | -  await page.getByRole('button', { name: 'Logout' }).click();  | 
90 |  | -  await page.goto('http://localhost:5829/?clientId=20dd0ed0-bb9b-4c8f-9a60-9ebeb4b348e0');  | 
 | 70 | +  test('Login - add phone device - authenticate with phone device', async ({ page }) => {  | 
 | 71 | +    /** Go to page */  | 
 | 72 | +    await page.goto('/?clientId=20dd0ed0-bb9b-4c8f-9a60-9ebeb4b348e0');  | 
 | 73 | +    expect(page.url()).toContain(  | 
 | 74 | +      'http://localhost:5829/?clientId=20dd0ed0-bb9b-4c8f-9a60-9ebeb4b348e0',  | 
 | 75 | +    );  | 
91 | 76 | 
 
  | 
92 |  | -  /**  | 
93 |  | -   * Login with the new user  | 
94 |  | -   **/  | 
95 |  | -  await page.getByRole('button', { name: 'USER_LOGIN' }).click();  | 
96 |  | -  await page.getByText('SDK Automation - Sign On');  | 
97 |  | -  await page.getByRole('textbox', { name:  'Username' }).fill('[email protected]');  | 
98 |  | -  await page.getByRole('textbox', { name: 'Password' }).fill(password);  | 
99 |  | -  await page.getByRole('button', { name: 'Sign On' }).click();  | 
 | 77 | +    /**  | 
 | 78 | +     * Register a new user  | 
 | 79 | +     **/  | 
 | 80 | +    await expect(page.getByText('Select Test Form')).toBeVisible();  | 
 | 81 | +    await page.getByRole('button', { name: 'USER_REGISTRATION' }).click();  | 
 | 82 | +    await page.getByRole('textbox', { name: 'Email' }).fill(username);  | 
 | 83 | +    await page.getByRole('textbox', { name: 'Password' }).fill(password);  | 
 | 84 | +    await page.getByRole('textbox', { name: 'Given Name' }).fill('demouser');  | 
 | 85 | +    await page.getByRole('textbox', { name: 'Family Name' }).fill('demouser');  | 
 | 86 | +    await page.getByRole('button', { name: 'Continue' }).click();  | 
 | 87 | +    await expect(page.getByRole('heading', { name: 'Registration Complete' })).toBeVisible();  | 
 | 88 | +    await page.getByRole('button', { name: 'Continue' }).click();  | 
 | 89 | +    await page.getByRole('button', { name: 'Logout' }).click();  | 
100 | 90 | 
 
  | 
101 |  | -  /** Register a Device */  | 
102 |  | -  await page.getByText('Select Test Form');  | 
103 |  | -  await page.getByRole('button', { name: 'DEVICE_REGISTRATION' }).click();  | 
104 |  | -  await page.getByText('SDK Automation - Device Registration');  | 
105 |  | -  await page.getByRole('button', { name: 'Text Message' }).click();  | 
106 |  | -  await expect(page.getByText('SDK Automation - Enter Phone Number')).toBeVisible();  | 
107 |  | -  await expect(page.locator('#countryCode')).toBeVisible();  | 
108 |  | -  await page.locator('#countryCode').selectOption('1');  | 
109 |  | -  await page.getByRole('textbox', { name: 'Enter Phone Number' }).fill('3035550100');  | 
110 |  | -  await page.getByRole('button', { name: 'Submit' }).click();  | 
111 |  | -  await expect(page.getByText('SMS/Voice MFA Registered')).toBeVisible();  | 
112 |  | -  await page.getByRole('button').click();  | 
 | 91 | +    /**  | 
 | 92 | +     * Login with the new user  | 
 | 93 | +     **/  | 
 | 94 | +    await page.goto('/?clientId=20dd0ed0-bb9b-4c8f-9a60-9ebeb4b348e0');  | 
 | 95 | +    await page.getByRole('button', { name: 'USER_LOGIN' }).click();  | 
 | 96 | +    await expect(page.getByText('SDK Automation - Sign On')).toBeVisible();  | 
 | 97 | +    await page.getByRole('textbox', { name: 'Username' }).fill(username);  | 
 | 98 | +    await page.getByRole('textbox', { name: 'Password' }).fill(password);  | 
 | 99 | +    await page.getByRole('button', { name: 'Sign On' }).click();  | 
113 | 100 | 
 
  | 
114 |  | -  /** Authenticate with the Device */  | 
115 |  | -  await page.getByRole('button', { name: 'DEVICE_AUTHENTICATION' }).click();  | 
116 |  | -  await page.getByText('SDK Automation - Device Authentication');  | 
117 |  | -  await page.getByRole('button', { name: 'Text Message' }).click();  | 
118 |  | -  await page.getByRole('button', { name: 'USER_DELETE' }).click();  | 
119 |  | -  await page.getByRole('heading', { name: 'Success' });  | 
120 |  | -  await page.getByRole('button', { name: 'Start over' }).click();  | 
 | 101 | +    /** Register a Device */  | 
 | 102 | +    await expect(page.getByText('Select Test Form')).toBeVisible();  | 
 | 103 | +    await page.getByRole('button', { name: 'DEVICE_REGISTRATION' }).click();  | 
 | 104 | +    await expect(page.getByText('SDK Automation - Device Registration')).toBeVisible();  | 
 | 105 | +    await page.getByRole('button', { name: 'Text Message' }).click();  | 
 | 106 | +    await expect(page.getByText('SDK Automation - Enter Phone Number')).toBeVisible();  | 
 | 107 | +    await page.getByRole('textbox', { name: 'Enter Phone Number' }).fill('3035550100');  | 
 | 108 | +    await page.getByRole('button', { name: 'Submit' }).click();  | 
 | 109 | +    await expect(page.getByText('SMS/Voice MFA Registered')).toBeVisible();  | 
 | 110 | +    await page.getByRole('button', { name: 'Continue' }).click();  | 
 | 111 | +  });  | 
121 | 112 | });  | 
0 commit comments