@thoughtspot/visual-embed-sdk 1.36.9-primaryAction → 1.36.9
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 +1 -1
- package/cjs/src/embed/ts-embed.d.ts.map +1 -1
- package/cjs/src/embed/ts-embed.js +1 -4
- package/cjs/src/embed/ts-embed.js.map +1 -1
- package/cjs/src/types.d.ts +1 -17
- package/cjs/src/types.d.ts.map +1 -1
- package/cjs/src/types.js +0 -1
- package/cjs/src/types.js.map +1 -1
- package/dist/src/embed/ts-embed.d.ts.map +1 -1
- package/dist/src/types.d.ts +1 -17
- package/dist/src/types.d.ts.map +1 -1
- package/dist/tsembed-react.es.js +4 -8
- package/dist/tsembed-react.js +3 -7
- package/dist/tsembed.es.js +4 -8
- package/dist/tsembed.js +3 -7
- package/dist/visual-embed-sdk-react-full.d.ts +1 -17
- package/dist/visual-embed-sdk-react.d.ts +1 -17
- package/dist/visual-embed-sdk.d.ts +1 -17
- package/lib/package.json +1 -1
- package/lib/src/embed/ts-embed.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.js +1 -4
- package/lib/src/embed/ts-embed.js.map +1 -1
- package/lib/src/types.d.ts +1 -17
- package/lib/src/types.d.ts.map +1 -1
- package/lib/src/types.js +0 -1
- package/lib/src/types.js.map +1 -1
- package/lib/src/visual-embed-sdk.d.ts +1 -17
- package/package.json +1 -1
- package/src/embed/ts-embed.ts +0 -5
- package/src/types.ts +0 -20
- 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-BEyovSez.js +0 -7370
- package/dist/index-BJx3m5_V.js +0 -7370
- package/dist/index-Do_T8J8z.js +0 -7370
- package/dist/src/pages/embed-test.page.d.ts +0 -8
- package/dist/src/pages/embed-test.page.d.ts.map +0 -1
- package/dist/src/pages/home.page.d.ts +0 -6
- package/dist/src/pages/home.page.d.ts.map +0 -1
- package/dist/src/pages/login.page.d.ts +0 -15
- package/dist/src/pages/login.page.d.ts.map +0 -1
- package/dist/src/tests/auth.test.d.ts +0 -1
- package/dist/src/tests/auth.test.d.ts.map +0 -1
- package/dist/src/tests/e2e/auth.spec.d.ts +0 -2
- package/dist/src/tests/e2e/auth.spec.d.ts.map +0 -1
- package/lib/src/pages/embed-test.page.d.ts +0 -8
- package/lib/src/pages/embed-test.page.d.ts.map +0 -1
- package/lib/src/pages/embed-test.page.js +0 -16
- package/lib/src/pages/embed-test.page.js.map +0 -1
- package/lib/src/pages/home.page.d.ts +0 -6
- package/lib/src/pages/home.page.d.ts.map +0 -1
- package/lib/src/pages/home.page.js +0 -8
- package/lib/src/pages/home.page.js.map +0 -1
- package/lib/src/pages/login.page.d.ts +0 -15
- package/lib/src/pages/login.page.d.ts.map +0 -1
- package/lib/src/pages/login.page.js +0 -18
- package/lib/src/pages/login.page.js.map +0 -1
- package/lib/src/tests/auth.test.d.ts +0 -1
- package/lib/src/tests/auth.test.d.ts.map +0 -1
- package/lib/src/tests/auth.test.js +0 -1
- package/lib/src/tests/auth.test.js.map +0 -1
- package/lib/src/tests/e2e/auth.spec.d.ts +0 -2
- package/lib/src/tests/e2e/auth.spec.d.ts.map +0 -1
- package/lib/src/tests/e2e/auth.spec.js +0 -52
- package/lib/src/tests/e2e/auth.spec.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"embed-test.page.d.ts","sourceRoot":"","sources":["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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"home.page.d.ts","sourceRoot":"","sources":["home.page.ts"],"names":[],"mappings":"AAAA,qBAAa,QAAQ;IACjB,SAAS;;MAEP;CACL"}
|
|
@@ -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":["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 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=auth.test.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auth.test.d.ts","sourceRoot":"","sources":["auth.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auth.spec.d.ts","sourceRoot":"","sources":["auth.spec.ts"],"names":[],"mappings":""}
|
|
@@ -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,16 +0,0 @@
|
|
|
1
|
-
export class EmbedTestPage {
|
|
2
|
-
constructor(page) {
|
|
3
|
-
this.page = page;
|
|
4
|
-
}
|
|
5
|
-
async goto() {
|
|
6
|
-
// Implement navigation logic
|
|
7
|
-
}
|
|
8
|
-
async waitForFrameToLoad() {
|
|
9
|
-
// Implement frame load wait logic
|
|
10
|
-
}
|
|
11
|
-
async switchToTSFrame() {
|
|
12
|
-
// Implement frame switching logic
|
|
13
|
-
return this.page;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
//# 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,MAAM,OAAO,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"}
|
|
@@ -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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"home.page.js","sourceRoot":"","sources":["../../../src/pages/home.page.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,QAAQ;IAArB;QACI,cAAS,GAAG;YACR,QAAQ,EAAE,2BAA2B;SACxC,CAAC;IACN,CAAC;CAAA"}
|
|
@@ -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,18 +0,0 @@
|
|
|
1
|
-
export class LoginPage {
|
|
2
|
-
constructor(page) {
|
|
3
|
-
this.page = page;
|
|
4
|
-
this.selectors = {
|
|
5
|
-
userAvatar: '[data-testid="user-avatar"]',
|
|
6
|
-
signOutButtonInProfileMenu: '[data-testid="sign-out-button"]',
|
|
7
|
-
loginPageLogo: '[data-testid="login-logo"]'
|
|
8
|
-
};
|
|
9
|
-
this.utils = {
|
|
10
|
-
getRandomName: () => `testUser${Math.random().toString(36).substring(7)}`,
|
|
11
|
-
getStrongPassword: () => 'Test@123'
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
async loginAsUser(username, password) {
|
|
15
|
-
// Implement login logic here
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
//# 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,MAAM,OAAO,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"}
|
|
@@ -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,52 +0,0 @@
|
|
|
1
|
-
import { test, expect } from '@playwright/test';
|
|
2
|
-
import { LoginPage } from 'src/pages/login.page';
|
|
3
|
-
import { HomePage } from 'src/pages/home.page';
|
|
4
|
-
import { EmbedTestPage } from 'src/pages/embed-test.page';
|
|
5
|
-
test.describe('Authentication flows', () => {
|
|
6
|
-
let loginPage;
|
|
7
|
-
let homePage;
|
|
8
|
-
let embedTestPage;
|
|
9
|
-
test.beforeEach(async ({ page }) => {
|
|
10
|
-
loginPage = new LoginPage(page);
|
|
11
|
-
homePage = new HomePage();
|
|
12
|
-
embedTestPage = new EmbedTestPage(page);
|
|
13
|
-
await embedTestPage.goto();
|
|
14
|
-
});
|
|
15
|
-
test('should handle logout and login sequence correctly', async () => {
|
|
16
|
-
// Wait for initial load
|
|
17
|
-
await embedTestPage.waitForFrameToLoad();
|
|
18
|
-
const frameLoc = await embedTestPage.switchToTSFrame();
|
|
19
|
-
// Verify user is logged in
|
|
20
|
-
await expect(frameLoc.locator(homePage.selectors.homePage)).toBeVisible();
|
|
21
|
-
// Perform logout
|
|
22
|
-
await frameLoc.locator(loginPage.selectors.userAvatar).click();
|
|
23
|
-
await frameLoc.locator(loginPage.selectors.signOutButtonInProfileMenu).click();
|
|
24
|
-
// Verify logout
|
|
25
|
-
await expect(frameLoc.locator(loginPage.selectors.loginPageLogo)).toBeVisible();
|
|
26
|
-
// Perform login with new credentials
|
|
27
|
-
const username = loginPage.utils.getRandomName();
|
|
28
|
-
const password = loginPage.utils.getStrongPassword();
|
|
29
|
-
await loginPage.loginAsUser(username, password);
|
|
30
|
-
// Verify successful login
|
|
31
|
-
await expect(frameLoc.locator(homePage.selectors.homePage)).toBeVisible();
|
|
32
|
-
await expect(frameLoc.locator(loginPage.selectors.userAvatar)).toBeVisible();
|
|
33
|
-
});
|
|
34
|
-
test('should handle multiple logout-login cycles', async () => {
|
|
35
|
-
await embedTestPage.waitForFrameToLoad();
|
|
36
|
-
const frameLoc = await embedTestPage.switchToTSFrame();
|
|
37
|
-
// First cycle
|
|
38
|
-
await expect(frameLoc.locator(homePage.selectors.homePage)).toBeVisible();
|
|
39
|
-
await frameLoc.locator(loginPage.selectors.userAvatar).click();
|
|
40
|
-
await frameLoc.locator(loginPage.selectors.signOutButtonInProfileMenu).click();
|
|
41
|
-
await expect(frameLoc.locator(loginPage.selectors.loginPageLogo)).toBeVisible();
|
|
42
|
-
await loginPage.loginAsUser(loginPage.utils.getRandomName(), loginPage.utils.getStrongPassword());
|
|
43
|
-
await expect(frameLoc.locator(homePage.selectors.homePage)).toBeVisible();
|
|
44
|
-
// Second cycle
|
|
45
|
-
await frameLoc.locator(loginPage.selectors.userAvatar).click();
|
|
46
|
-
await frameLoc.locator(loginPage.selectors.signOutButtonInProfileMenu).click();
|
|
47
|
-
await expect(frameLoc.locator(loginPage.selectors.loginPageLogo)).toBeVisible();
|
|
48
|
-
await loginPage.loginAsUser(loginPage.utils.getRandomName(), loginPage.utils.getStrongPassword());
|
|
49
|
-
await expect(frameLoc.locator(homePage.selectors.homePage)).toBeVisible();
|
|
50
|
-
});
|
|
51
|
-
});
|
|
52
|
-
//# 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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"}
|