@thoughtspot/visual-embed-sdk 1.37.0-temp-nav → 1.37.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/cjs/package.json +2 -2
  2. package/cjs/src/auth.d.ts +7 -3
  3. package/cjs/src/auth.d.ts.map +1 -1
  4. package/cjs/src/auth.js +20 -0
  5. package/cjs/src/auth.js.map +1 -1
  6. package/cjs/src/auth.spec.js +48 -0
  7. package/cjs/src/auth.spec.js.map +1 -1
  8. package/cjs/src/embed/app.d.ts +37 -14
  9. package/cjs/src/embed/app.d.ts.map +1 -1
  10. package/cjs/src/embed/app.js +35 -7
  11. package/cjs/src/embed/app.js.map +1 -1
  12. package/cjs/src/embed/app.spec.js +19 -8
  13. package/cjs/src/embed/app.spec.js.map +1 -1
  14. package/cjs/src/embed/base.d.ts.map +1 -1
  15. package/cjs/src/embed/base.js +7 -0
  16. package/cjs/src/embed/base.js.map +1 -1
  17. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  18. package/cjs/src/embed/ts-embed.js +6 -4
  19. package/cjs/src/embed/ts-embed.js.map +1 -1
  20. package/cjs/src/embed/ts-embed.spec.d.ts.map +1 -1
  21. package/cjs/src/embed/ts-embed.spec.js +105 -0
  22. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  23. package/cjs/src/types.d.ts +24 -2
  24. package/cjs/src/types.d.ts.map +1 -1
  25. package/cjs/src/types.js +24 -2
  26. package/cjs/src/types.js.map +1 -1
  27. package/dist/{index-Fhk1V_Gw.js → index-m9UtENc9.js} +1 -1
  28. package/dist/src/auth.d.ts +7 -3
  29. package/dist/src/auth.d.ts.map +1 -1
  30. package/dist/src/embed/app.d.ts +37 -14
  31. package/dist/src/embed/app.d.ts.map +1 -1
  32. package/dist/src/embed/base.d.ts.map +1 -1
  33. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  34. package/dist/src/embed/ts-embed.spec.d.ts.map +1 -1
  35. package/dist/src/types.d.ts +24 -2
  36. package/dist/src/types.d.ts.map +1 -1
  37. package/dist/tsembed-react.es.js +94 -15
  38. package/dist/tsembed-react.js +93 -14
  39. package/dist/tsembed.es.js +94 -15
  40. package/dist/tsembed.js +93 -14
  41. package/dist/visual-embed-sdk-react-full.d.ts +68 -19
  42. package/dist/visual-embed-sdk-react.d.ts +68 -19
  43. package/dist/visual-embed-sdk.d.ts +68 -19
  44. package/lib/package.json +2 -2
  45. package/lib/src/auth.d.ts +7 -3
  46. package/lib/src/auth.d.ts.map +1 -1
  47. package/lib/src/auth.js +20 -0
  48. package/lib/src/auth.js.map +1 -1
  49. package/lib/src/auth.spec.js +48 -0
  50. package/lib/src/auth.spec.js.map +1 -1
  51. package/lib/src/embed/app.d.ts +37 -14
  52. package/lib/src/embed/app.d.ts.map +1 -1
  53. package/lib/src/embed/app.js +34 -6
  54. package/lib/src/embed/app.js.map +1 -1
  55. package/lib/src/embed/app.spec.js +20 -9
  56. package/lib/src/embed/app.spec.js.map +1 -1
  57. package/lib/src/embed/base.d.ts.map +1 -1
  58. package/lib/src/embed/base.js +7 -0
  59. package/lib/src/embed/base.js.map +1 -1
  60. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  61. package/lib/src/embed/ts-embed.js +6 -4
  62. package/lib/src/embed/ts-embed.js.map +1 -1
  63. package/lib/src/embed/ts-embed.spec.d.ts.map +1 -1
  64. package/lib/src/embed/ts-embed.spec.js +105 -0
  65. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  66. package/lib/src/types.d.ts +24 -2
  67. package/lib/src/types.d.ts.map +1 -1
  68. package/lib/src/types.js +24 -2
  69. package/lib/src/types.js.map +1 -1
  70. package/lib/src/visual-embed-sdk.d.ts +68 -19
  71. package/package.json +2 -2
  72. package/src/auth.spec.ts +52 -0
  73. package/src/auth.ts +23 -2
  74. package/src/embed/app.spec.ts +26 -8
  75. package/src/embed/app.ts +48 -19
  76. package/src/embed/base.ts +9 -0
  77. package/src/embed/ts-embed.spec.ts +130 -0
  78. package/src/embed/ts-embed.ts +6 -4
  79. package/src/types.ts +24 -2
  80. package/cjs/src/pages/embed-test.page.d.ts +0 -8
  81. package/cjs/src/pages/embed-test.page.d.ts.map +0 -1
  82. package/cjs/src/pages/embed-test.page.js +0 -20
  83. package/cjs/src/pages/embed-test.page.js.map +0 -1
  84. package/cjs/src/pages/home.page.d.ts +0 -6
  85. package/cjs/src/pages/home.page.d.ts.map +0 -1
  86. package/cjs/src/pages/home.page.js +0 -12
  87. package/cjs/src/pages/home.page.js.map +0 -1
  88. package/cjs/src/pages/login.page.d.ts +0 -15
  89. package/cjs/src/pages/login.page.d.ts.map +0 -1
  90. package/cjs/src/pages/login.page.js +0 -22
  91. package/cjs/src/pages/login.page.js.map +0 -1
  92. package/cjs/src/tests/auth.test.d.ts +0 -1
  93. package/cjs/src/tests/auth.test.d.ts.map +0 -1
  94. package/cjs/src/tests/auth.test.js +0 -1
  95. package/cjs/src/tests/auth.test.js.map +0 -1
  96. package/cjs/src/tests/e2e/auth.spec.d.ts +0 -2
  97. package/cjs/src/tests/e2e/auth.spec.d.ts.map +0 -1
  98. package/cjs/src/tests/e2e/auth.spec.js +0 -54
  99. package/cjs/src/tests/e2e/auth.spec.js.map +0 -1
  100. package/dist/index-Cj4BVGHL.js +0 -7371
@@ -60,6 +60,7 @@ import { HiddenActionItemByDefaultForSearchEmbed } from './search';
60
60
  import { processTrigger } from '../utils/processTrigger';
61
61
  import { UIPassthroughEvent } from './hostEventClient/contracts';
62
62
  import * as sessionInfoService from '../utils/sessionInfoService';
63
+ import * as authToken from '../authToken';
63
64
 
64
65
  jest.mock('../utils/processTrigger');
65
66
 
@@ -2578,4 +2579,133 @@ describe('Unit test case for ts embed', () => {
2578
2579
  expect(iframeAfterInit).not.toBe(null);
2579
2580
  });
2580
2581
  });
2582
+
2583
+ describe('AutoLogin behavior in updateAuthToken', () => {
2584
+ const mockPort = { postMessage: jest.fn() };
2585
+ const mockEmbedEventPayload = { type: EmbedEvent.AuthExpire, data: {} };
2586
+
2587
+ beforeEach(() => {
2588
+ jest.clearAllMocks();
2589
+ document.body.innerHTML = getDocumentBody();
2590
+ mockPort.postMessage.mockClear();
2591
+ jest.spyOn(authToken, 'getAuthenticationToken').mockResolvedValue('test-token');
2592
+
2593
+ jest.spyOn(baseInstance, 'handleAuth').mockImplementation(() => Promise.resolve(true));
2594
+ jest.spyOn(baseInstance, 'notifyAuthFailure').mockImplementation(() => {});
2595
+ });
2596
+
2597
+ const renderAndTriggerAuthExpire = async () => {
2598
+ const searchEmbed = new SearchEmbed(getRootEl(), defaultViewConfig);
2599
+ await searchEmbed.render();
2600
+ await executeAfterWait(() => {
2601
+ const iframe = getIFrameEl();
2602
+ postMessageToParent(iframe.contentWindow, mockEmbedEventPayload, mockPort);
2603
+ });
2604
+ };
2605
+
2606
+ test('Cookieless with autoLogin undefined should default to true', async () => {
2607
+ init({
2608
+ thoughtSpotHost: 'tshost',
2609
+ authType: AuthType.TrustedAuthTokenCookieless,
2610
+ // autoLogin undefined
2611
+ });
2612
+
2613
+ await renderAndTriggerAuthExpire();
2614
+
2615
+ await executeAfterWait(() => {
2616
+ expect(authToken.getAuthenticationToken).toHaveBeenCalled();
2617
+ expect(baseInstance.handleAuth).toHaveBeenCalledTimes(1);
2618
+ expect(mockPort.postMessage).toHaveBeenCalledWith({
2619
+ type: EmbedEvent.AuthExpire,
2620
+ data: { authToken: 'test-token' },
2621
+ });
2622
+ });
2623
+ });
2624
+
2625
+ test('Cookieless with autoLogin false should not get auth token', async () => {
2626
+ init({
2627
+ thoughtSpotHost: 'tshost',
2628
+ authType: AuthType.TrustedAuthTokenCookieless,
2629
+ autoLogin: false,
2630
+ });
2631
+
2632
+ await renderAndTriggerAuthExpire();
2633
+
2634
+ await executeAfterWait(() => {
2635
+ expect(authToken.getAuthenticationToken).not.toHaveBeenCalled();
2636
+ expect(baseInstance.handleAuth).toHaveBeenCalledTimes(1);
2637
+ expect(mockPort.postMessage).not.toHaveBeenCalled();
2638
+ });
2639
+ });
2640
+
2641
+ test('Cookieless with autoLogin true should get auth token', async () => {
2642
+ init({
2643
+ thoughtSpotHost: 'tshost',
2644
+ authType: AuthType.TrustedAuthTokenCookieless,
2645
+ autoLogin: true,
2646
+ });
2647
+
2648
+ await renderAndTriggerAuthExpire();
2649
+
2650
+ await executeAfterWait(() => {
2651
+ expect(authToken.getAuthenticationToken).toHaveBeenCalled();
2652
+ expect(baseInstance.handleAuth).toHaveBeenCalledTimes(1);
2653
+ expect(mockPort.postMessage).toHaveBeenCalledWith({
2654
+ type: EmbedEvent.AuthExpire,
2655
+ data: { authToken: 'test-token' },
2656
+ });
2657
+ });
2658
+ });
2659
+
2660
+ test('Other authType with autoLogin undefined should default to false', async () => {
2661
+ init({
2662
+ thoughtSpotHost: 'tshost',
2663
+ authType: AuthType.None,
2664
+ // autoLogin undefined
2665
+ });
2666
+
2667
+ await renderAndTriggerAuthExpire();
2668
+
2669
+ await executeAfterWait(() => {
2670
+ expect(authToken.getAuthenticationToken).not.toHaveBeenCalled();
2671
+ expect(baseInstance.handleAuth).toHaveBeenCalledTimes(1);
2672
+ });
2673
+ });
2674
+
2675
+ test('Other authType with autoLogin true should call handleAuth', async () => {
2676
+ init({
2677
+ thoughtSpotHost: 'tshost',
2678
+ authType: AuthType.None,
2679
+ autoLogin: true,
2680
+ });
2681
+
2682
+ await renderAndTriggerAuthExpire();
2683
+
2684
+ await executeAfterWait(() => {
2685
+ expect(authToken.getAuthenticationToken).not.toHaveBeenCalled();
2686
+ expect(baseInstance.handleAuth).toHaveBeenCalledTimes(2);
2687
+ });
2688
+ });
2689
+
2690
+ test('Other authType with autoLogin false should not call handleAuth', async () => {
2691
+ init({
2692
+ thoughtSpotHost: 'tshost',
2693
+ authType: AuthType.None,
2694
+ autoLogin: false,
2695
+ });
2696
+
2697
+ await renderAndTriggerAuthExpire();
2698
+
2699
+ await executeAfterWait(() => {
2700
+ expect(authToken.getAuthenticationToken).not.toHaveBeenCalled();
2701
+ expect(baseInstance.handleAuth).toHaveBeenCalledTimes(1);
2702
+ });
2703
+ });
2704
+
2705
+ afterEach(() => {
2706
+ expect(baseInstance.notifyAuthFailure).toHaveBeenCalledWith(
2707
+ authInstance.AuthFailureType.EXPIRY
2708
+ );
2709
+ });
2710
+ });
2581
2711
  });
@@ -409,11 +409,13 @@ export class TsEmbed {
409
409
  * @param responder
410
410
  */
411
411
  private updateAuthToken = async (_: any, responder: any) => {
412
- const { autoLogin = false, authType } = this.embedConfig; // Set autoLogin default to false
413
- if (authType === AuthType.TrustedAuthTokenCookieless) {
414
- let authToken = '';
412
+ const { authType } = this.embedConfig;
413
+ let { autoLogin } = this.embedConfig;
414
+ // Default autoLogin: true for cookieless if undefined/null, otherwise false
415
+ autoLogin = autoLogin ?? (authType === AuthType.TrustedAuthTokenCookieless);
416
+ if (autoLogin && authType === AuthType.TrustedAuthTokenCookieless) {
415
417
  try {
416
- authToken = await getAuthenticationToken(this.embedConfig);
418
+ const authToken = await getAuthenticationToken(this.embedConfig);
417
419
  responder({
418
420
  type: EmbedEvent.AuthExpire,
419
421
  data: { authToken },
package/src/types.ts CHANGED
@@ -2679,9 +2679,12 @@ export enum HostEvent {
2679
2679
  * @example
2680
2680
  * ```js
2681
2681
  * searchEmbed.trigger(HostEvent.OpenFilter,
2682
- * { columnId: '<column-GUID>', name: 'column name', type: 'INT64', dataType: 'ATTRIBUTE'})
2682
+ * {column: { columnId: '<column-GUID>', name: 'column name', type: 'INT64', dataType: 'ATTRIBUTE'}})
2683
+ * ```
2684
+ * @example
2685
+ * ```js
2683
2686
  * LiveboardEmbed.trigger(HostEvent.OpenFilter,
2684
- * { columnId: '<column-GUID>'})
2687
+ * { column: {columnId: '<column-GUID>'}})
2685
2688
  * ```
2686
2689
  * @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl
2687
2690
  */
@@ -3290,6 +3293,25 @@ export enum HostEvent {
3290
3293
  * }]
3291
3294
  * });
3292
3295
  * ```
3296
+ * If there are multiple columns with the same name, consider
3297
+ * using `WORKSHEET_NAME::COLUMN_NAME` format.
3298
+ *
3299
+ * @example
3300
+ *
3301
+ * ```js
3302
+ * liveboardEmbed.trigger(HostEvent.UpdateFilters, {
3303
+ * filters: [{
3304
+ * column: "(Sample) Retail - Apparel::city",
3305
+ * oper: 'IN',
3306
+ * values: ["atlanta"]
3307
+ * },
3308
+ * {
3309
+ * column: "(Sample) Retail - Apparel::Region",
3310
+ * oper: 'IN',
3311
+ * values: ["West","Midwest"]
3312
+ * }]
3313
+ * });
3314
+ * ```
3293
3315
  * @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl
3294
3316
  */
3295
3317
  UpdateFilters = 'updateFilters',
@@ -1,8 +0,0 @@
1
- export declare class EmbedTestPage {
2
- private page;
3
- constructor(page: any);
4
- goto(): Promise<void>;
5
- waitForFrameToLoad(): Promise<void>;
6
- switchToTSFrame(): Promise<any>;
7
- }
8
- //# sourceMappingURL=embed-test.page.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"embed-test.page.d.ts","sourceRoot":"","sources":["../../../src/pages/embed-test.page.ts"],"names":[],"mappings":"AAAA,qBAAa,aAAa;IACV,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,GAAG;IAEvB,IAAI;IAIJ,kBAAkB;IAIlB,eAAe;CAIxB"}
@@ -1,20 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EmbedTestPage = void 0;
4
- class EmbedTestPage {
5
- constructor(page) {
6
- this.page = page;
7
- }
8
- async goto() {
9
- // Implement navigation logic
10
- }
11
- async waitForFrameToLoad() {
12
- // Implement frame load wait logic
13
- }
14
- async switchToTSFrame() {
15
- // Implement frame switching logic
16
- return this.page;
17
- }
18
- }
19
- exports.EmbedTestPage = EmbedTestPage;
20
- //# sourceMappingURL=embed-test.page.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"embed-test.page.js","sourceRoot":"","sources":["../../../src/pages/embed-test.page.ts"],"names":[],"mappings":";;;AAAA,MAAa,aAAa;IACtB,YAAoB,IAAS;QAAT,SAAI,GAAJ,IAAI,CAAK;IAAG,CAAC;IAEjC,KAAK,CAAC,IAAI;QACN,6BAA6B;IACjC,CAAC;IAED,KAAK,CAAC,kBAAkB;QACpB,kCAAkC;IACtC,CAAC;IAED,KAAK,CAAC,eAAe;QACjB,kCAAkC;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;CACJ;AAfD,sCAeC"}
@@ -1,6 +0,0 @@
1
- export declare class HomePage {
2
- selectors: {
3
- homePage: string;
4
- };
5
- }
6
- //# sourceMappingURL=home.page.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"home.page.d.ts","sourceRoot":"","sources":["../../../src/pages/home.page.ts"],"names":[],"mappings":"AAAA,qBAAa,QAAQ;IACjB,SAAS;;MAEP;CACL"}
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.HomePage = void 0;
4
- class HomePage {
5
- constructor() {
6
- this.selectors = {
7
- homePage: '[data-testid="home-page"]'
8
- };
9
- }
10
- }
11
- exports.HomePage = HomePage;
12
- //# sourceMappingURL=home.page.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"home.page.js","sourceRoot":"","sources":["../../../src/pages/home.page.ts"],"names":[],"mappings":";;;AAAA,MAAa,QAAQ;IAArB;QACI,cAAS,GAAG;YACR,QAAQ,EAAE,2BAA2B;SACxC,CAAC;IACN,CAAC;CAAA;AAJD,4BAIC"}
@@ -1,15 +0,0 @@
1
- export declare class LoginPage {
2
- private page;
3
- selectors: {
4
- userAvatar: string;
5
- signOutButtonInProfileMenu: string;
6
- loginPageLogo: string;
7
- };
8
- utils: {
9
- getRandomName: () => string;
10
- getStrongPassword: () => string;
11
- };
12
- constructor(page: any);
13
- loginAsUser(username: string, password: string): Promise<void>;
14
- }
15
- //# sourceMappingURL=login.page.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"login.page.d.ts","sourceRoot":"","sources":["../../../src/pages/login.page.ts"],"names":[],"mappings":"AAAA,qBAAa,SAAS;IAYN,OAAO,CAAC,IAAI;IAXxB,SAAS;;;;MAIP;IAEF,KAAK;;;MAGH;gBAEkB,IAAI,EAAE,GAAG;IAEvB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;CAGvD"}
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LoginPage = void 0;
4
- class LoginPage {
5
- constructor(page) {
6
- this.page = page;
7
- this.selectors = {
8
- userAvatar: '[data-testid="user-avatar"]',
9
- signOutButtonInProfileMenu: '[data-testid="sign-out-button"]',
10
- loginPageLogo: '[data-testid="login-logo"]'
11
- };
12
- this.utils = {
13
- getRandomName: () => `testUser${Math.random().toString(36).substring(7)}`,
14
- getStrongPassword: () => 'Test@123'
15
- };
16
- }
17
- async loginAsUser(username, password) {
18
- // Implement login logic here
19
- }
20
- }
21
- exports.LoginPage = LoginPage;
22
- //# sourceMappingURL=login.page.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"login.page.js","sourceRoot":"","sources":["../../../src/pages/login.page.ts"],"names":[],"mappings":";;;AAAA,MAAa,SAAS;IAYlB,YAAoB,IAAS;QAAT,SAAI,GAAJ,IAAI,CAAK;QAX7B,cAAS,GAAG;YACR,UAAU,EAAE,6BAA6B;YACzC,0BAA0B,EAAE,iCAAiC;YAC7D,aAAa,EAAE,4BAA4B;SAC9C,CAAC;QAEF,UAAK,GAAG;YACJ,aAAa,EAAE,GAAG,EAAE,CAAC,WAAW,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YACzE,iBAAiB,EAAE,GAAG,EAAE,CAAC,UAAU;SACtC,CAAC;IAE8B,CAAC;IAEjC,KAAK,CAAC,WAAW,CAAC,QAAgB,EAAE,QAAgB;QAChD,6BAA6B;IACjC,CAAC;CACJ;AAjBD,8BAiBC"}
@@ -1 +0,0 @@
1
- //# sourceMappingURL=auth.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.test.d.ts","sourceRoot":"","sources":["../../../src/tests/auth.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- //# sourceMappingURL=auth.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.test.js","sourceRoot":"","sources":["../../../src/tests/auth.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=auth.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.spec.d.ts","sourceRoot":"","sources":["../../../../src/tests/e2e/auth.spec.ts"],"names":[],"mappings":""}
@@ -1,54 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const test_1 = require("@playwright/test");
4
- const login_page_1 = require("src/pages/login.page");
5
- const home_page_1 = require("src/pages/home.page");
6
- const embed_test_page_1 = require("src/pages/embed-test.page");
7
- test_1.test.describe('Authentication flows', () => {
8
- let loginPage;
9
- let homePage;
10
- let embedTestPage;
11
- test_1.test.beforeEach(async ({ page }) => {
12
- loginPage = new login_page_1.LoginPage(page);
13
- homePage = new home_page_1.HomePage();
14
- embedTestPage = new embed_test_page_1.EmbedTestPage(page);
15
- await embedTestPage.goto();
16
- });
17
- (0, test_1.test)('should handle logout and login sequence correctly', async () => {
18
- // Wait for initial load
19
- await embedTestPage.waitForFrameToLoad();
20
- const frameLoc = await embedTestPage.switchToTSFrame();
21
- // Verify user is logged in
22
- await (0, test_1.expect)(frameLoc.locator(homePage.selectors.homePage)).toBeVisible();
23
- // Perform logout
24
- await frameLoc.locator(loginPage.selectors.userAvatar).click();
25
- await frameLoc.locator(loginPage.selectors.signOutButtonInProfileMenu).click();
26
- // Verify logout
27
- await (0, test_1.expect)(frameLoc.locator(loginPage.selectors.loginPageLogo)).toBeVisible();
28
- // Perform login with new credentials
29
- const username = loginPage.utils.getRandomName();
30
- const password = loginPage.utils.getStrongPassword();
31
- await loginPage.loginAsUser(username, password);
32
- // Verify successful login
33
- await (0, test_1.expect)(frameLoc.locator(homePage.selectors.homePage)).toBeVisible();
34
- await (0, test_1.expect)(frameLoc.locator(loginPage.selectors.userAvatar)).toBeVisible();
35
- });
36
- (0, test_1.test)('should handle multiple logout-login cycles', async () => {
37
- await embedTestPage.waitForFrameToLoad();
38
- const frameLoc = await embedTestPage.switchToTSFrame();
39
- // First cycle
40
- await (0, test_1.expect)(frameLoc.locator(homePage.selectors.homePage)).toBeVisible();
41
- await frameLoc.locator(loginPage.selectors.userAvatar).click();
42
- await frameLoc.locator(loginPage.selectors.signOutButtonInProfileMenu).click();
43
- await (0, test_1.expect)(frameLoc.locator(loginPage.selectors.loginPageLogo)).toBeVisible();
44
- await loginPage.loginAsUser(loginPage.utils.getRandomName(), loginPage.utils.getStrongPassword());
45
- await (0, test_1.expect)(frameLoc.locator(homePage.selectors.homePage)).toBeVisible();
46
- // Second cycle
47
- await frameLoc.locator(loginPage.selectors.userAvatar).click();
48
- await frameLoc.locator(loginPage.selectors.signOutButtonInProfileMenu).click();
49
- await (0, test_1.expect)(frameLoc.locator(loginPage.selectors.loginPageLogo)).toBeVisible();
50
- await loginPage.loginAsUser(loginPage.utils.getRandomName(), loginPage.utils.getStrongPassword());
51
- await (0, test_1.expect)(frameLoc.locator(homePage.selectors.homePage)).toBeVisible();
52
- });
53
- });
54
- //# sourceMappingURL=auth.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.spec.js","sourceRoot":"","sources":["../../../../src/tests/e2e/auth.spec.ts"],"names":[],"mappings":"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"}