@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.
- package/cjs/package.json +2 -2
- package/cjs/src/auth.d.ts +7 -3
- package/cjs/src/auth.d.ts.map +1 -1
- package/cjs/src/auth.js +20 -0
- package/cjs/src/auth.js.map +1 -1
- package/cjs/src/auth.spec.js +48 -0
- package/cjs/src/auth.spec.js.map +1 -1
- package/cjs/src/embed/app.d.ts +37 -14
- package/cjs/src/embed/app.d.ts.map +1 -1
- package/cjs/src/embed/app.js +35 -7
- package/cjs/src/embed/app.js.map +1 -1
- package/cjs/src/embed/app.spec.js +19 -8
- package/cjs/src/embed/app.spec.js.map +1 -1
- package/cjs/src/embed/base.d.ts.map +1 -1
- package/cjs/src/embed/base.js +7 -0
- package/cjs/src/embed/base.js.map +1 -1
- package/cjs/src/embed/ts-embed.d.ts.map +1 -1
- package/cjs/src/embed/ts-embed.js +6 -4
- package/cjs/src/embed/ts-embed.js.map +1 -1
- package/cjs/src/embed/ts-embed.spec.d.ts.map +1 -1
- package/cjs/src/embed/ts-embed.spec.js +105 -0
- package/cjs/src/embed/ts-embed.spec.js.map +1 -1
- package/cjs/src/types.d.ts +24 -2
- package/cjs/src/types.d.ts.map +1 -1
- package/cjs/src/types.js +24 -2
- package/cjs/src/types.js.map +1 -1
- package/dist/{index-Fhk1V_Gw.js → index-m9UtENc9.js} +1 -1
- package/dist/src/auth.d.ts +7 -3
- package/dist/src/auth.d.ts.map +1 -1
- package/dist/src/embed/app.d.ts +37 -14
- package/dist/src/embed/app.d.ts.map +1 -1
- package/dist/src/embed/base.d.ts.map +1 -1
- package/dist/src/embed/ts-embed.d.ts.map +1 -1
- package/dist/src/embed/ts-embed.spec.d.ts.map +1 -1
- package/dist/src/types.d.ts +24 -2
- package/dist/src/types.d.ts.map +1 -1
- package/dist/tsembed-react.es.js +94 -15
- package/dist/tsembed-react.js +93 -14
- package/dist/tsembed.es.js +94 -15
- package/dist/tsembed.js +93 -14
- package/dist/visual-embed-sdk-react-full.d.ts +68 -19
- package/dist/visual-embed-sdk-react.d.ts +68 -19
- package/dist/visual-embed-sdk.d.ts +68 -19
- package/lib/package.json +2 -2
- package/lib/src/auth.d.ts +7 -3
- package/lib/src/auth.d.ts.map +1 -1
- package/lib/src/auth.js +20 -0
- package/lib/src/auth.js.map +1 -1
- package/lib/src/auth.spec.js +48 -0
- package/lib/src/auth.spec.js.map +1 -1
- package/lib/src/embed/app.d.ts +37 -14
- package/lib/src/embed/app.d.ts.map +1 -1
- package/lib/src/embed/app.js +34 -6
- package/lib/src/embed/app.js.map +1 -1
- package/lib/src/embed/app.spec.js +20 -9
- package/lib/src/embed/app.spec.js.map +1 -1
- package/lib/src/embed/base.d.ts.map +1 -1
- package/lib/src/embed/base.js +7 -0
- package/lib/src/embed/base.js.map +1 -1
- package/lib/src/embed/ts-embed.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.js +6 -4
- package/lib/src/embed/ts-embed.js.map +1 -1
- package/lib/src/embed/ts-embed.spec.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.spec.js +105 -0
- package/lib/src/embed/ts-embed.spec.js.map +1 -1
- package/lib/src/types.d.ts +24 -2
- package/lib/src/types.d.ts.map +1 -1
- package/lib/src/types.js +24 -2
- package/lib/src/types.js.map +1 -1
- package/lib/src/visual-embed-sdk.d.ts +68 -19
- package/package.json +2 -2
- package/src/auth.spec.ts +52 -0
- package/src/auth.ts +23 -2
- package/src/embed/app.spec.ts +26 -8
- package/src/embed/app.ts +48 -19
- package/src/embed/base.ts +9 -0
- package/src/embed/ts-embed.spec.ts +130 -0
- package/src/embed/ts-embed.ts +6 -4
- package/src/types.ts +24 -2
- package/cjs/src/pages/embed-test.page.d.ts +0 -8
- package/cjs/src/pages/embed-test.page.d.ts.map +0 -1
- package/cjs/src/pages/embed-test.page.js +0 -20
- package/cjs/src/pages/embed-test.page.js.map +0 -1
- package/cjs/src/pages/home.page.d.ts +0 -6
- package/cjs/src/pages/home.page.d.ts.map +0 -1
- package/cjs/src/pages/home.page.js +0 -12
- package/cjs/src/pages/home.page.js.map +0 -1
- package/cjs/src/pages/login.page.d.ts +0 -15
- package/cjs/src/pages/login.page.d.ts.map +0 -1
- package/cjs/src/pages/login.page.js +0 -22
- package/cjs/src/pages/login.page.js.map +0 -1
- package/cjs/src/tests/auth.test.d.ts +0 -1
- package/cjs/src/tests/auth.test.d.ts.map +0 -1
- package/cjs/src/tests/auth.test.js +0 -1
- package/cjs/src/tests/auth.test.js.map +0 -1
- package/cjs/src/tests/e2e/auth.spec.d.ts +0 -2
- package/cjs/src/tests/e2e/auth.spec.d.ts.map +0 -1
- package/cjs/src/tests/e2e/auth.spec.js +0 -54
- package/cjs/src/tests/e2e/auth.spec.js.map +0 -1
- 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
|
});
|
package/src/embed/ts-embed.ts
CHANGED
|
@@ -409,11 +409,13 @@ export class TsEmbed {
|
|
|
409
409
|
* @param responder
|
|
410
410
|
*/
|
|
411
411
|
private updateAuthToken = async (_: any, responder: any) => {
|
|
412
|
-
const {
|
|
413
|
-
|
|
414
|
-
|
|
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
|
-
*
|
|
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 +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 +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 +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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"}
|