angular-uitest 1.0.3
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/LICENSE +21 -0
- package/README.md +336 -0
- package/bin/samaro-allure.mjs +178 -0
- package/bin/samaro-init.mjs +407 -0
- package/bin/samaro-test.mjs +119 -0
- package/dist/cjs/config/index.d.ts +4 -0
- package/dist/cjs/config/index.d.ts.map +1 -0
- package/dist/cjs/config/index.js +11 -0
- package/dist/cjs/config/index.js.map +1 -0
- package/dist/cjs/config/playwright.component.config.d.ts +12 -0
- package/dist/cjs/config/playwright.component.config.d.ts.map +1 -0
- package/dist/cjs/config/playwright.component.config.js +42 -0
- package/dist/cjs/config/playwright.component.config.js.map +1 -0
- package/dist/cjs/config/playwright.config.d.ts +14 -0
- package/dist/cjs/config/playwright.config.d.ts.map +1 -0
- package/dist/cjs/config/playwright.config.js +53 -0
- package/dist/cjs/config/playwright.config.js.map +1 -0
- package/dist/cjs/config/vitest.config.d.ts +12 -0
- package/dist/cjs/config/vitest.config.d.ts.map +1 -0
- package/dist/cjs/config/vitest.config.js +60 -0
- package/dist/cjs/config/vitest.config.js.map +1 -0
- package/dist/cjs/helpers/allure.d.ts +141 -0
- package/dist/cjs/helpers/allure.d.ts.map +1 -0
- package/dist/cjs/helpers/allure.js +331 -0
- package/dist/cjs/helpers/allure.js.map +1 -0
- package/dist/cjs/helpers/api.d.ts +69 -0
- package/dist/cjs/helpers/api.d.ts.map +1 -0
- package/dist/cjs/helpers/api.js +163 -0
- package/dist/cjs/helpers/api.js.map +1 -0
- package/dist/cjs/helpers/auth.d.ts +35 -0
- package/dist/cjs/helpers/auth.d.ts.map +1 -0
- package/dist/cjs/helpers/auth.js +104 -0
- package/dist/cjs/helpers/auth.js.map +1 -0
- package/dist/cjs/helpers/config.d.ts +34 -0
- package/dist/cjs/helpers/config.d.ts.map +1 -0
- package/dist/cjs/helpers/config.js +70 -0
- package/dist/cjs/helpers/config.js.map +1 -0
- package/dist/cjs/helpers/debug.d.ts +48 -0
- package/dist/cjs/helpers/debug.d.ts.map +1 -0
- package/dist/cjs/helpers/debug.js +86 -0
- package/dist/cjs/helpers/debug.js.map +1 -0
- package/dist/cjs/helpers/index.d.ts +8 -0
- package/dist/cjs/helpers/index.d.ts.map +1 -0
- package/dist/cjs/helpers/index.js +76 -0
- package/dist/cjs/helpers/index.js.map +1 -0
- package/dist/cjs/helpers/setup.d.ts +50 -0
- package/dist/cjs/helpers/setup.d.ts.map +1 -0
- package/dist/cjs/helpers/setup.js +137 -0
- package/dist/cjs/helpers/setup.js.map +1 -0
- package/dist/cjs/src/index.d.ts +17 -0
- package/dist/cjs/src/index.d.ts.map +1 -0
- package/dist/cjs/src/index.js +99 -0
- package/dist/cjs/src/index.js.map +1 -0
- package/dist/esm/config/index.d.ts +4 -0
- package/dist/esm/config/index.d.ts.map +1 -0
- package/dist/esm/config/index.mjs +4 -0
- package/dist/esm/config/index.mjs.map +1 -0
- package/dist/esm/config/playwright.component.config.d.ts +12 -0
- package/dist/esm/config/playwright.component.config.d.ts.map +1 -0
- package/dist/esm/config/playwright.component.config.mjs +39 -0
- package/dist/esm/config/playwright.component.config.mjs.map +1 -0
- package/dist/esm/config/playwright.config.d.ts +14 -0
- package/dist/esm/config/playwright.config.d.ts.map +1 -0
- package/dist/esm/config/playwright.config.mjs +50 -0
- package/dist/esm/config/playwright.config.mjs.map +1 -0
- package/dist/esm/config/vitest.config.d.ts +12 -0
- package/dist/esm/config/vitest.config.d.ts.map +1 -0
- package/dist/esm/config/vitest.config.mjs +56 -0
- package/dist/esm/config/vitest.config.mjs.map +1 -0
- package/dist/esm/helpers/allure.d.ts +141 -0
- package/dist/esm/helpers/allure.d.ts.map +1 -0
- package/dist/esm/helpers/allure.mjs +306 -0
- package/dist/esm/helpers/allure.mjs.map +1 -0
- package/dist/esm/helpers/api.d.ts +69 -0
- package/dist/esm/helpers/api.d.ts.map +1 -0
- package/dist/esm/helpers/api.mjs +154 -0
- package/dist/esm/helpers/api.mjs.map +1 -0
- package/dist/esm/helpers/auth.d.ts +35 -0
- package/dist/esm/helpers/auth.d.ts.map +1 -0
- package/dist/esm/helpers/auth.mjs +96 -0
- package/dist/esm/helpers/auth.mjs.map +1 -0
- package/dist/esm/helpers/config.d.ts +34 -0
- package/dist/esm/helpers/config.d.ts.map +1 -0
- package/dist/esm/helpers/config.mjs +63 -0
- package/dist/esm/helpers/config.mjs.map +1 -0
- package/dist/esm/helpers/debug.d.ts +48 -0
- package/dist/esm/helpers/debug.d.ts.map +1 -0
- package/dist/esm/helpers/debug.mjs +76 -0
- package/dist/esm/helpers/debug.mjs.map +1 -0
- package/dist/esm/helpers/index.d.ts +8 -0
- package/dist/esm/helpers/index.d.ts.map +1 -0
- package/dist/esm/helpers/index.mjs +19 -0
- package/dist/esm/helpers/index.mjs.map +1 -0
- package/dist/esm/helpers/setup.d.ts +50 -0
- package/dist/esm/helpers/setup.d.ts.map +1 -0
- package/dist/esm/helpers/setup.mjs +95 -0
- package/dist/esm/helpers/setup.mjs.map +1 -0
- package/dist/esm/src/index.d.ts +17 -0
- package/dist/esm/src/index.d.ts.map +1 -0
- package/dist/esm/src/index.mjs +40 -0
- package/dist/esm/src/index.mjs.map +1 -0
- package/dist/types/config/index.d.ts +4 -0
- package/dist/types/config/index.d.ts.map +1 -0
- package/dist/types/config/playwright.component.config.d.ts +12 -0
- package/dist/types/config/playwright.component.config.d.ts.map +1 -0
- package/dist/types/config/playwright.config.d.ts +14 -0
- package/dist/types/config/playwright.config.d.ts.map +1 -0
- package/dist/types/config/vitest.config.d.ts +12 -0
- package/dist/types/config/vitest.config.d.ts.map +1 -0
- package/dist/types/helpers/allure.d.ts +141 -0
- package/dist/types/helpers/allure.d.ts.map +1 -0
- package/dist/types/helpers/api.d.ts +69 -0
- package/dist/types/helpers/api.d.ts.map +1 -0
- package/dist/types/helpers/auth.d.ts +35 -0
- package/dist/types/helpers/auth.d.ts.map +1 -0
- package/dist/types/helpers/config.d.ts +34 -0
- package/dist/types/helpers/config.d.ts.map +1 -0
- package/dist/types/helpers/debug.d.ts +48 -0
- package/dist/types/helpers/debug.d.ts.map +1 -0
- package/dist/types/helpers/index.d.ts +8 -0
- package/dist/types/helpers/index.d.ts.map +1 -0
- package/dist/types/helpers/setup.d.ts +50 -0
- package/dist/types/helpers/setup.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +17 -0
- package/dist/types/src/index.d.ts.map +1 -0
- package/package.json +140 -0
- package/schematics/collection.json +11 -0
- package/schematics/ng-add/index.js +126 -0
- package/schematics/ng-add/schema.json +26 -0
- package/scripts/check-allure-results.mjs +300 -0
- package/scripts/rename-esm-files.mjs +76 -0
- package/types/allure.d.ts +76 -0
- package/types/global.d.ts +49 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { generateUniqueUser, register } from './auth.mjs';
|
|
2
|
+
import { registerUserViaAPI } from './api.mjs';
|
|
3
|
+
/**
|
|
4
|
+
* Create a user in an isolated browser context
|
|
5
|
+
* This provides full isolation for tests
|
|
6
|
+
*/
|
|
7
|
+
export async function createUserInIsolation(browser, user) {
|
|
8
|
+
const context = await browser.newContext();
|
|
9
|
+
const page = await context.newPage();
|
|
10
|
+
const uniqueUser = { ...generateUniqueUser(), ...user };
|
|
11
|
+
const result = await register(page, uniqueUser.username, uniqueUser.email, uniqueUser.password);
|
|
12
|
+
if (!result.success) {
|
|
13
|
+
await context.close();
|
|
14
|
+
throw new Error(result.error || 'Failed to create user in isolation');
|
|
15
|
+
}
|
|
16
|
+
return { context, page, user: uniqueUser };
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Create a user via API (faster, no browser context needed)
|
|
20
|
+
*/
|
|
21
|
+
export async function createUserViaAPI(request, user) {
|
|
22
|
+
const uniqueUser = { ...generateUniqueUser(), ...user };
|
|
23
|
+
const result = await registerUserViaAPI(request, uniqueUser);
|
|
24
|
+
return {
|
|
25
|
+
username: result.username,
|
|
26
|
+
email: result.email,
|
|
27
|
+
password: uniqueUser.password,
|
|
28
|
+
token: result.token
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Setup authenticated page with token
|
|
33
|
+
*/
|
|
34
|
+
export async function setupAuthenticatedPage(page, token) {
|
|
35
|
+
// Set token in localStorage
|
|
36
|
+
await page.goto('/');
|
|
37
|
+
await page.evaluate((t) => {
|
|
38
|
+
localStorage.setItem('token', t);
|
|
39
|
+
}, token);
|
|
40
|
+
// Reload to apply token
|
|
41
|
+
await page.reload();
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Create multiple articles via API
|
|
45
|
+
*/
|
|
46
|
+
export async function createManyArticles(request, token, count, baseTitle = 'Test Article') {
|
|
47
|
+
const { createArticleViaAPI } = await import('./api.js');
|
|
48
|
+
const articles = [];
|
|
49
|
+
for (let i = 0; i < count; i++) {
|
|
50
|
+
const article = await createArticleViaAPI(request, token, {
|
|
51
|
+
title: `${baseTitle} ${i + 1}`,
|
|
52
|
+
description: `Description for article ${i + 1}`,
|
|
53
|
+
body: `Body content for article ${i + 1}`,
|
|
54
|
+
tagList: ['test', `tag-${i}`],
|
|
55
|
+
});
|
|
56
|
+
articles.push(article);
|
|
57
|
+
}
|
|
58
|
+
return articles;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Cleanup helper for test data
|
|
62
|
+
*/
|
|
63
|
+
export async function cleanupTestData(request, token, articles) {
|
|
64
|
+
const { deleteArticleViaAPI } = await import('./api.js');
|
|
65
|
+
await Promise.all(articles.map(article => deleteArticleViaAPI(request, token, article.slug).catch(() => {
|
|
66
|
+
// Ignore cleanup errors
|
|
67
|
+
})));
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Wait for Angular to be stable
|
|
71
|
+
*/
|
|
72
|
+
export async function waitForAngular(page) {
|
|
73
|
+
await page.waitForFunction(() => {
|
|
74
|
+
return window.getAngularTestability ?
|
|
75
|
+
window.getAngularTestability().isStable() : true;
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Safe navigation with retry
|
|
80
|
+
*/
|
|
81
|
+
export async function safeGoto(page, url, options = {}) {
|
|
82
|
+
const { timeout = 10000, retries = 3 } = options;
|
|
83
|
+
for (let i = 0; i < retries; i++) {
|
|
84
|
+
try {
|
|
85
|
+
await page.goto(url, { waitUntil: 'networkidle', timeout });
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
if (i === retries - 1)
|
|
90
|
+
throw error;
|
|
91
|
+
await page.waitForTimeout(1000);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
// # sourceMappingURL=setup.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file": "setup.mjs","sourceRoot":"","sources":["../../../helpers/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SamaroUItest - Comprehensive Testing Framework for Angular
|
|
3
|
+
*
|
|
4
|
+
* @packageDocumentation
|
|
5
|
+
*/
|
|
6
|
+
import 'reflect-metadata';
|
|
7
|
+
export { createVitestConfig, createPlaywrightConfig, createComponentConfig, mergeConfig, type SamaroVitestOptions, type SamaroPlaywrightOptions, type SamaroComponentOptions, } from '../config/index.js';
|
|
8
|
+
export { setDebugInterfaceName, getDebugInterfaceName, getToken, getAuthState, getCurrentUser, waitForAuthState, isDebugInterfaceAvailable, getDebugData, type AuthState, type User, register, login, logout, generateUniqueUser, isLoggedIn, getCurrentUsername, type UserCredentials, type AuthResult, getAPIConfig, registerUserViaAPI, loginUserViaAPI, createArticleViaAPI, deleteArticleViaAPI, updateUserViaAPI, getCurrentUserViaAPI, type APIConfig, type APIUser, type APIAuthResponse, createUserInIsolation, createUserViaAPI, setupAuthenticatedPage, createManyArticles, cleanupTestData, waitForAngular, safeGoto, type TestUser, type IsolatedUserContext, getConfig, isCI, isDebug, getBrowserLaunchOptions, setTestEnv, type SamaroConfig, severity, tag, epic, feature, story, owner, description, descriptionHtml, link, issue, tms, allure, allureMeta, addLabel, addLink, addAttachment, attachScreenshot, attachJson, attachText, attachHtml, allureStep, getAllureMetadata, getAllureMetadataKeys, type Severity, type LinkType, type LabelName, type AllureMetadataOptions, type Label, type Link, type Parameter, type Attachment, type Status, type StatusDetails, type StepResult, type TestResult, type TestResultContainer, } from '../helpers/index.js';
|
|
9
|
+
/**
|
|
10
|
+
* Version of SamaroUItest
|
|
11
|
+
*/
|
|
12
|
+
export declare const VERSION = "1.0.2";
|
|
13
|
+
/**
|
|
14
|
+
* Check if the package is properly installed
|
|
15
|
+
*/
|
|
16
|
+
export declare function checkInstallation(): boolean;
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,kBAAkB,CAAC;AAG1B,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,WAAW,EACX,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,GAC5B,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAEL,qBAAqB,EACrB,qBAAqB,EACrB,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,yBAAyB,EACzB,YAAY,EACZ,KAAK,SAAS,EACd,KAAK,IAAI,EAGT,QAAQ,EACR,KAAK,EACL,MAAM,EACN,kBAAkB,EAClB,UAAU,EACV,kBAAkB,EAClB,KAAK,eAAe,EACpB,KAAK,UAAU,EAGf,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,SAAS,EACd,KAAK,OAAO,EACZ,KAAK,eAAe,EAGpB,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,QAAQ,EACR,KAAK,QAAQ,EACb,KAAK,mBAAmB,EAGxB,SAAS,EACT,IAAI,EACJ,OAAO,EACP,uBAAuB,EACvB,UAAU,EACV,KAAK,YAAY,EAGjB,QAAQ,EACR,GAAG,EACH,IAAI,EACJ,OAAO,EACP,KAAK,EACL,KAAK,EACL,WAAW,EACX,eAAe,EACf,IAAI,EACJ,KAAK,EACL,GAAG,EACH,MAAM,EACN,UAAU,EACV,QAAQ,EACR,OAAO,EACP,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,qBAAqB,EACrB,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,qBAAqB,EAC1B,KAAK,KAAK,EACV,KAAK,IAAI,EACT,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,mBAAmB,GACzB,MAAM,qBAAqB,CAAC;AAE7B;;GAEG;AACH,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAO3C"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SamaroUItest - Comprehensive Testing Framework for Angular
|
|
3
|
+
*
|
|
4
|
+
* @packageDocumentation
|
|
5
|
+
*/
|
|
6
|
+
// Import reflect-metadata for decorator support
|
|
7
|
+
import 'reflect-metadata';
|
|
8
|
+
// Configuration exports
|
|
9
|
+
export { createVitestConfig, createPlaywrightConfig, createComponentConfig, mergeConfig, } from '../config/index.mjs';
|
|
10
|
+
// Helper exports
|
|
11
|
+
export {
|
|
12
|
+
// Debug
|
|
13
|
+
setDebugInterfaceName, getDebugInterfaceName, getToken, getAuthState, getCurrentUser, waitForAuthState, isDebugInterfaceAvailable, getDebugData,
|
|
14
|
+
// Auth
|
|
15
|
+
register, login, logout, generateUniqueUser, isLoggedIn, getCurrentUsername,
|
|
16
|
+
// API
|
|
17
|
+
getAPIConfig, registerUserViaAPI, loginUserViaAPI, createArticleViaAPI, deleteArticleViaAPI, updateUserViaAPI, getCurrentUserViaAPI,
|
|
18
|
+
// Setup
|
|
19
|
+
createUserInIsolation, createUserViaAPI, setupAuthenticatedPage, createManyArticles, cleanupTestData, waitForAngular, safeGoto,
|
|
20
|
+
// Config
|
|
21
|
+
getConfig, isCI, isDebug, getBrowserLaunchOptions, setTestEnv,
|
|
22
|
+
// Allure
|
|
23
|
+
severity, tag, epic, feature, story, owner, description, descriptionHtml, link, issue, tms, allure, allureMeta, addLabel, addLink, addAttachment, attachScreenshot, attachJson, attachText, attachHtml, allureStep, getAllureMetadata, getAllureMetadataKeys, } from '../helpers/index.mjs';
|
|
24
|
+
/**
|
|
25
|
+
* Version of SamaroUItest
|
|
26
|
+
*/
|
|
27
|
+
export const VERSION = '1.0.2';
|
|
28
|
+
/**
|
|
29
|
+
* Check if the package is properly installed
|
|
30
|
+
*/
|
|
31
|
+
export function checkInstallation() {
|
|
32
|
+
try {
|
|
33
|
+
// Try to import required dependencies
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
// # sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file": "index.mjs","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,gDAAgD;AAChD,OAAO,kBAAkB,CAAC;AAE1B,wBAAwB;AACxB,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,WAAW,GAIZ,MAAM,oBAAoB,CAAC;AAE5B,iBAAiB;AACjB,OAAO;AACL,QAAQ;AACR,qBAAqB,EACrB,qBAAqB,EACrB,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,yBAAyB,EACzB,YAAY;AAIZ,OAAO;AACP,QAAQ,EACR,KAAK,EACL,MAAM,EACN,kBAAkB,EAClB,UAAU,EACV,kBAAkB;AAIlB,MAAM;AACN,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB;AAKpB,QAAQ;AACR,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,QAAQ;AAIR,SAAS;AACT,SAAS,EACT,IAAI,EACJ,OAAO,EACP,uBAAuB,EACvB,UAAU;AAGV,SAAS;AACT,QAAQ,EACR,GAAG,EACH,IAAI,EACJ,OAAO,EACP,KAAK,EACL,KAAK,EACL,WAAW,EACX,eAAe,EACf,IAAI,EACJ,KAAK,EACL,GAAG,EACH,MAAM,EACN,UAAU,EACV,QAAQ,EACR,OAAO,EACP,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,qBAAqB,GActB,MAAM,qBAAqB,CAAC;AAE7B;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,IAAI,CAAC;QACH,sCAAsC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { createVitestConfig, mergeConfig, type SamaroVitestOptions } from './vitest.config.js';
|
|
2
|
+
export { createPlaywrightConfig, type SamaroPlaywrightOptions } from './playwright.config.js';
|
|
3
|
+
export { createComponentConfig, type SamaroComponentOptions } from './playwright.component.config.js';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC/F,OAAO,EAAE,sBAAsB,EAAE,KAAK,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAC9F,OAAO,EAAE,qBAAqB,EAAE,KAAK,sBAAsB,EAAE,MAAM,kCAAkC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { PlaywrightTestConfig } from '@playwright/test';
|
|
2
|
+
export interface SamaroComponentOptions {
|
|
3
|
+
baseURL?: string;
|
|
4
|
+
testDir?: string;
|
|
5
|
+
resultsDir?: string;
|
|
6
|
+
webServerCommand?: string;
|
|
7
|
+
webServerPort?: number;
|
|
8
|
+
}
|
|
9
|
+
export declare function createComponentConfig(options?: SamaroComponentOptions): PlaywrightTestConfig;
|
|
10
|
+
declare const _default: PlaywrightTestConfig;
|
|
11
|
+
export default _default;
|
|
12
|
+
//# sourceMappingURL=playwright.component.config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"playwright.component.config.d.ts","sourceRoot":"","sources":["../../../config/playwright.component.config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE7D,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,sBAA2B,GAAG,oBAAoB,CA8ChG;;AAED,wBAAuC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { PlaywrightTestConfig } from '@playwright/test';
|
|
2
|
+
export interface SamaroPlaywrightOptions {
|
|
3
|
+
baseURL?: string;
|
|
4
|
+
testDir?: string;
|
|
5
|
+
resultsDir?: string;
|
|
6
|
+
webServerCommand?: string;
|
|
7
|
+
webServerPort?: number;
|
|
8
|
+
webServerTimeout?: number;
|
|
9
|
+
timeout?: number;
|
|
10
|
+
}
|
|
11
|
+
export declare function createPlaywrightConfig(options?: SamaroPlaywrightOptions): PlaywrightTestConfig;
|
|
12
|
+
declare const _default: PlaywrightTestConfig<{}, {}>;
|
|
13
|
+
export default _default;
|
|
14
|
+
//# sourceMappingURL=playwright.config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"playwright.config.d.ts","sourceRoot":"","sources":["../../../config/playwright.config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE7D,MAAM,WAAW,uBAAuB;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,sBAAsB,CAAC,OAAO,GAAE,uBAA4B,GAAG,oBAAoB,CA4DlG;;AAED,wBAAsD"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { mergeConfig } from 'vitest/config';
|
|
2
|
+
export interface SamaroVitestOptions {
|
|
3
|
+
projectRoot?: string;
|
|
4
|
+
testGlob?: string | string[];
|
|
5
|
+
resultsDir?: string;
|
|
6
|
+
setupFiles?: string[];
|
|
7
|
+
alias?: Record<string, string>;
|
|
8
|
+
}
|
|
9
|
+
export declare function createVitestConfig(options?: SamaroVitestOptions): import("vite", { with: { "resolution-mode": "import" } }).UserConfig;
|
|
10
|
+
export { mergeConfig };
|
|
11
|
+
export default createVitestConfig;
|
|
12
|
+
//# sourceMappingURL=vitest.config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vitest.config.d.ts","sourceRoot":"","sources":["../../../config/vitest.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,WAAW,EAAE,MAAM,eAAe,CAAC;AAqB1D,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,mBAAwB,wEA+CnE;AAED,OAAO,EAAE,WAAW,EAAE,CAAC;AACvB,eAAe,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Allure Metadata Helpers for SamaroUItest
|
|
3
|
+
*
|
|
4
|
+
* Provides decorators and functions for adding Allure metadata to tests.
|
|
5
|
+
* Works with both Vitest and Playwright test frameworks.
|
|
6
|
+
*/
|
|
7
|
+
export type Severity = 'blocker' | 'critical' | 'normal' | 'minor' | 'trivial';
|
|
8
|
+
export type LinkType = 'issue' | 'tms' | 'custom';
|
|
9
|
+
export type LabelName = 'epic' | 'feature' | 'story' | 'suite' | 'parentSuite' | 'subSuite' | 'owner' | 'severity' | 'tag' | 'layer' | 'host' | 'thread' | 'language' | 'framework' | 'package' | 'testClass' | 'testMethod';
|
|
10
|
+
/**
|
|
11
|
+
* Set test severity level
|
|
12
|
+
*/
|
|
13
|
+
export declare function severity(level: Severity): (target: any, propertyKey?: string, descriptor?: PropertyDescriptor) => any;
|
|
14
|
+
/**
|
|
15
|
+
* Add tags/labels to test
|
|
16
|
+
*/
|
|
17
|
+
export declare function tag(...tags: string[]): (target: any, propertyKey?: string, descriptor?: PropertyDescriptor) => any;
|
|
18
|
+
/**
|
|
19
|
+
* Set Epic for test hierarchy
|
|
20
|
+
*/
|
|
21
|
+
export declare function epic(name: string): (target: any, propertyKey?: string, descriptor?: PropertyDescriptor) => any;
|
|
22
|
+
/**
|
|
23
|
+
* Set Feature for test hierarchy
|
|
24
|
+
*/
|
|
25
|
+
export declare function feature(name: string): (target: any, propertyKey?: string, descriptor?: PropertyDescriptor) => any;
|
|
26
|
+
/**
|
|
27
|
+
* Set Story for test hierarchy
|
|
28
|
+
*/
|
|
29
|
+
export declare function story(name: string): (target: any, propertyKey?: string, descriptor?: PropertyDescriptor) => any;
|
|
30
|
+
/**
|
|
31
|
+
* Set test owner
|
|
32
|
+
*/
|
|
33
|
+
export declare function owner(name: string): (target: any, propertyKey?: string, descriptor?: PropertyDescriptor) => any;
|
|
34
|
+
/**
|
|
35
|
+
* Set test description
|
|
36
|
+
*/
|
|
37
|
+
export declare function description(text: string): (target: any, propertyKey?: string, descriptor?: PropertyDescriptor) => any;
|
|
38
|
+
/**
|
|
39
|
+
* Set HTML description
|
|
40
|
+
*/
|
|
41
|
+
export declare function descriptionHtml(html: string): (target: any, propertyKey?: string, descriptor?: PropertyDescriptor) => any;
|
|
42
|
+
/**
|
|
43
|
+
* Add link to external resource
|
|
44
|
+
*/
|
|
45
|
+
export declare function link(url: string, name?: string, type?: LinkType): (target: any, propertyKey?: string, descriptor?: PropertyDescriptor) => any;
|
|
46
|
+
/**
|
|
47
|
+
* Add issue link
|
|
48
|
+
*/
|
|
49
|
+
export declare function issue(url: string, name?: string): (target: any, propertyKey?: string, descriptor?: PropertyDescriptor) => any;
|
|
50
|
+
/**
|
|
51
|
+
* Add test management system link
|
|
52
|
+
*/
|
|
53
|
+
export declare function tms(url: string, name?: string): (target: any, propertyKey?: string, descriptor?: PropertyDescriptor) => any;
|
|
54
|
+
/**
|
|
55
|
+
* Add Allure metadata to Playwright test
|
|
56
|
+
* Usage: test('my test', allureMeta({ severity: 'critical', tags: ['smoke'] }, async ({ page }) => { ... }))
|
|
57
|
+
*/
|
|
58
|
+
export declare function allureMeta<T extends (...args: any[]) => any>(metadata: {
|
|
59
|
+
severity?: Severity;
|
|
60
|
+
tags?: string[];
|
|
61
|
+
epic?: string;
|
|
62
|
+
feature?: string;
|
|
63
|
+
story?: string;
|
|
64
|
+
owner?: string;
|
|
65
|
+
description?: string;
|
|
66
|
+
descriptionHtml?: string;
|
|
67
|
+
links?: Array<{
|
|
68
|
+
url: string;
|
|
69
|
+
name?: string;
|
|
70
|
+
type?: LinkType;
|
|
71
|
+
}>;
|
|
72
|
+
}, testFn: T): T;
|
|
73
|
+
/**
|
|
74
|
+
* Add custom label to Playwright test at runtime
|
|
75
|
+
*/
|
|
76
|
+
export declare function addLabel(name: LabelName, value: string): Promise<void>;
|
|
77
|
+
/**
|
|
78
|
+
* Add custom link to Playwright test at runtime
|
|
79
|
+
*/
|
|
80
|
+
export declare function addLink(url: string, name?: string, type?: LinkType): Promise<void>;
|
|
81
|
+
/**
|
|
82
|
+
* Add attachment to test at runtime
|
|
83
|
+
*/
|
|
84
|
+
export declare function addAttachment(name: string, content: Buffer | string, type: string): Promise<void>;
|
|
85
|
+
/**
|
|
86
|
+
* Add screenshot attachment
|
|
87
|
+
*/
|
|
88
|
+
export declare function attachScreenshot(name?: string, page?: any): Promise<void>;
|
|
89
|
+
/**
|
|
90
|
+
* Add JSON attachment
|
|
91
|
+
*/
|
|
92
|
+
export declare function attachJson(name: string, data: any): Promise<void>;
|
|
93
|
+
/**
|
|
94
|
+
* Add text attachment
|
|
95
|
+
*/
|
|
96
|
+
export declare function attachText(name: string, text: string): Promise<void>;
|
|
97
|
+
/**
|
|
98
|
+
* Add HTML attachment
|
|
99
|
+
*/
|
|
100
|
+
export declare function attachHtml(name: string, html: string): Promise<void>;
|
|
101
|
+
/**
|
|
102
|
+
* Create a custom Allure step
|
|
103
|
+
*/
|
|
104
|
+
export declare function allureStep<T>(name: string, body: () => Promise<T> | T): Promise<T>;
|
|
105
|
+
export interface AllureMetadataOptions {
|
|
106
|
+
severity?: Severity;
|
|
107
|
+
tags?: string[];
|
|
108
|
+
epic?: string;
|
|
109
|
+
feature?: string;
|
|
110
|
+
story?: string;
|
|
111
|
+
owner?: string;
|
|
112
|
+
description?: string;
|
|
113
|
+
descriptionHtml?: string;
|
|
114
|
+
links?: Array<{
|
|
115
|
+
url: string;
|
|
116
|
+
name?: string;
|
|
117
|
+
type?: LinkType;
|
|
118
|
+
}>;
|
|
119
|
+
issue?: string | {
|
|
120
|
+
url: string;
|
|
121
|
+
name?: string;
|
|
122
|
+
};
|
|
123
|
+
tms?: string | {
|
|
124
|
+
url: string;
|
|
125
|
+
name?: string;
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Combined decorator for multiple Allure metadata
|
|
130
|
+
*/
|
|
131
|
+
export declare function allure(options: AllureMetadataOptions): (target: any, propertyKey?: string, descriptor?: PropertyDescriptor) => any;
|
|
132
|
+
/**
|
|
133
|
+
* Get all Allure metadata for a class or method
|
|
134
|
+
*/
|
|
135
|
+
export declare function getAllureMetadata(target: any, propertyKey?: string): AllureMetadataOptions | null;
|
|
136
|
+
/**
|
|
137
|
+
* Get metadata keys for a target
|
|
138
|
+
*/
|
|
139
|
+
export declare function getAllureMetadataKeys(target: any, propertyKey?: string): string[];
|
|
140
|
+
export type { Label, Link, Parameter, Attachment, Status, StatusDetails, StepResult, TestResult, TestResultContainer, } from 'allure-js-commons';
|
|
141
|
+
//# sourceMappingURL=allure.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"allure.d.ts","sourceRoot":"","sources":["../../../helpers/allure.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { APIRequestContext } from '@playwright/test';
|
|
2
|
+
export interface APIConfig {
|
|
3
|
+
baseURL: string;
|
|
4
|
+
}
|
|
5
|
+
export interface APIUser {
|
|
6
|
+
username: string;
|
|
7
|
+
email: string;
|
|
8
|
+
password: string;
|
|
9
|
+
}
|
|
10
|
+
export interface APIAuthResponse {
|
|
11
|
+
user: {
|
|
12
|
+
email: string;
|
|
13
|
+
token: string;
|
|
14
|
+
username: string;
|
|
15
|
+
bio: string | null;
|
|
16
|
+
image: string | null;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Get API configuration from environment variables
|
|
21
|
+
*/
|
|
22
|
+
export declare function getAPIConfig(): APIConfig;
|
|
23
|
+
/**
|
|
24
|
+
* Register a user via API
|
|
25
|
+
*/
|
|
26
|
+
export declare function registerUserViaAPI(request: APIRequestContext, user: APIUser): Promise<{
|
|
27
|
+
token: string;
|
|
28
|
+
username: string;
|
|
29
|
+
email: string;
|
|
30
|
+
}>;
|
|
31
|
+
/**
|
|
32
|
+
* Login a user via API
|
|
33
|
+
*/
|
|
34
|
+
export declare function loginUserViaAPI(request: APIRequestContext, email: string, password: string): Promise<{
|
|
35
|
+
token: string;
|
|
36
|
+
username: string;
|
|
37
|
+
email: string;
|
|
38
|
+
}>;
|
|
39
|
+
/**
|
|
40
|
+
* Create an article via API
|
|
41
|
+
*/
|
|
42
|
+
export declare function createArticleViaAPI(request: APIRequestContext, token: string, article: {
|
|
43
|
+
title: string;
|
|
44
|
+
description: string;
|
|
45
|
+
body: string;
|
|
46
|
+
tagList?: string[];
|
|
47
|
+
}): Promise<{
|
|
48
|
+
slug: string;
|
|
49
|
+
title: string;
|
|
50
|
+
}>;
|
|
51
|
+
/**
|
|
52
|
+
* Delete an article via API
|
|
53
|
+
*/
|
|
54
|
+
export declare function deleteArticleViaAPI(request: APIRequestContext, token: string, slug: string): Promise<void>;
|
|
55
|
+
/**
|
|
56
|
+
* Update user via API
|
|
57
|
+
*/
|
|
58
|
+
export declare function updateUserViaAPI(request: APIRequestContext, token: string, updates: {
|
|
59
|
+
email?: string;
|
|
60
|
+
bio?: string;
|
|
61
|
+
image?: string;
|
|
62
|
+
username?: string;
|
|
63
|
+
password?: string;
|
|
64
|
+
}): Promise<void>;
|
|
65
|
+
/**
|
|
66
|
+
* Get current user via API
|
|
67
|
+
*/
|
|
68
|
+
export declare function getCurrentUserViaAPI(request: APIRequestContext, token: string): Promise<APIAuthResponse['user']>;
|
|
69
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../helpers/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;KACtB,CAAC;CACH;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,SAAS,CAIxC;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,iBAAiB,EAC1B,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAyB7D;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,iBAAiB,EAC1B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAyB7D;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,iBAAiB,EAC1B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE;IACP,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,GACA,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAyB1C;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,iBAAiB,EAC1B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,iBAAiB,EAC1B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE;IACP,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GACA,OAAO,CAAC,IAAI,CAAC,CAmBf;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,iBAAiB,EAC1B,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAoBlC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Page } from '@playwright/test';
|
|
2
|
+
export interface UserCredentials {
|
|
3
|
+
username: string;
|
|
4
|
+
email: string;
|
|
5
|
+
password: string;
|
|
6
|
+
}
|
|
7
|
+
export interface AuthResult {
|
|
8
|
+
success: boolean;
|
|
9
|
+
error?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Register a new user via UI
|
|
13
|
+
*/
|
|
14
|
+
export declare function register(page: Page, username: string, email: string, password: string): Promise<AuthResult>;
|
|
15
|
+
/**
|
|
16
|
+
* Login a user via UI
|
|
17
|
+
*/
|
|
18
|
+
export declare function login(page: Page, email: string, password: string): Promise<AuthResult>;
|
|
19
|
+
/**
|
|
20
|
+
* Logout a user via UI
|
|
21
|
+
*/
|
|
22
|
+
export declare function logout(page: Page): Promise<void>;
|
|
23
|
+
/**
|
|
24
|
+
* Generate unique user credentials to avoid conflicts
|
|
25
|
+
*/
|
|
26
|
+
export declare function generateUniqueUser(): UserCredentials;
|
|
27
|
+
/**
|
|
28
|
+
* Check if user is logged in
|
|
29
|
+
*/
|
|
30
|
+
export declare function isLoggedIn(page: Page): Promise<boolean>;
|
|
31
|
+
/**
|
|
32
|
+
* Get current username if logged in
|
|
33
|
+
*/
|
|
34
|
+
export declare function getCurrentUsername(page: Page): Promise<string | null>;
|
|
35
|
+
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../helpers/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,UAAU,CAAC,CAmBrB;AAED;;GAEG;AACH,wBAAsB,KAAK,CACzB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,UAAU,CAAC,CAkBrB;AAED;;GAEG;AACH,wBAAsB,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBtD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,eAAe,CAQpD;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAM7D;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAM3E"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration helpers for SamaroUItest
|
|
3
|
+
*/
|
|
4
|
+
export interface SamaroConfig {
|
|
5
|
+
apiMode: boolean;
|
|
6
|
+
apiBase: string;
|
|
7
|
+
debugInterfaceName: string;
|
|
8
|
+
timeouts: {
|
|
9
|
+
navigation: number;
|
|
10
|
+
action: number;
|
|
11
|
+
expectation: number;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Get SamaroUItest configuration from environment variables
|
|
16
|
+
*/
|
|
17
|
+
export declare function getConfig(): SamaroConfig;
|
|
18
|
+
/**
|
|
19
|
+
* Check if running in CI environment
|
|
20
|
+
*/
|
|
21
|
+
export declare function isCI(): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Check if running in debug mode
|
|
24
|
+
*/
|
|
25
|
+
export declare function isDebug(): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Get browser launch options based on environment
|
|
28
|
+
*/
|
|
29
|
+
export declare function getBrowserLaunchOptions(): Record<string, any>;
|
|
30
|
+
/**
|
|
31
|
+
* Set environment variables for test configuration
|
|
32
|
+
*/
|
|
33
|
+
export declare function setTestEnv(vars: Partial<SamaroConfig>): void;
|
|
34
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../helpers/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE;QACR,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,YAAY,CAWxC;AAED;;GAEG;AACH,wBAAgB,IAAI,IAAI,OAAO,CAE9B;AAED;;GAEG;AACH,wBAAgB,OAAO,IAAI,OAAO,CAEjC;AAED;;GAEG;AACH,wBAAgB,uBAAuB,wBAgBtC;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAU5D"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Page } from '@playwright/test';
|
|
2
|
+
export type AuthState = 'authenticated' | 'unauthenticated' | 'unavailable' | 'loading';
|
|
3
|
+
export interface User {
|
|
4
|
+
username: string;
|
|
5
|
+
email: string;
|
|
6
|
+
bio: string | null;
|
|
7
|
+
image: string | null;
|
|
8
|
+
token: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function setDebugInterfaceName(name: string): void;
|
|
11
|
+
export declare function getDebugInterfaceName(): string;
|
|
12
|
+
/**
|
|
13
|
+
* Get the current JWT token from the app's debug interface.
|
|
14
|
+
* Returns null if no token is set or debug interface is not available.
|
|
15
|
+
*/
|
|
16
|
+
export declare function getToken(page: Page): Promise<string | null>;
|
|
17
|
+
/**
|
|
18
|
+
* Get the current authentication state from the app's debug interface.
|
|
19
|
+
* Returns undefined if debug interface is not available.
|
|
20
|
+
*/
|
|
21
|
+
export declare function getAuthState(page: Page): Promise<AuthState | undefined>;
|
|
22
|
+
/**
|
|
23
|
+
* Get the current user from the app's debug interface.
|
|
24
|
+
* Returns null if not authenticated or debug interface is not available.
|
|
25
|
+
*/
|
|
26
|
+
export declare function getCurrentUser(page: Page): Promise<User | null>;
|
|
27
|
+
/**
|
|
28
|
+
* Wait for a specific auth state to be reached.
|
|
29
|
+
* Useful for waiting after login/logout operations.
|
|
30
|
+
*/
|
|
31
|
+
export declare function waitForAuthState(page: Page, expectedState: AuthState, options?: {
|
|
32
|
+
timeout?: number;
|
|
33
|
+
}): Promise<void>;
|
|
34
|
+
/**
|
|
35
|
+
* Check if the debug interface is available.
|
|
36
|
+
* Can be used to skip tests if implementation doesn't support it.
|
|
37
|
+
*/
|
|
38
|
+
export declare function isDebugInterfaceAvailable(page: Page): Promise<boolean>;
|
|
39
|
+
/**
|
|
40
|
+
* Get all debug data at once (token, auth state, user)
|
|
41
|
+
*/
|
|
42
|
+
export declare function getDebugData(page: Page): Promise<{
|
|
43
|
+
token: string | null;
|
|
44
|
+
authState: AuthState | undefined;
|
|
45
|
+
user: User | null;
|
|
46
|
+
available: boolean;
|
|
47
|
+
}>;
|
|
48
|
+
//# sourceMappingURL=debug.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../../helpers/debug.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,MAAM,MAAM,SAAS,GAAG,eAAe,GAAG,iBAAiB,GAAG,aAAa,GAAG,SAAS,CAAC;AAExF,MAAM,WAAW,IAAI;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAOD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAExD;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAKjE;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAK7E;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAKrE;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,IAAI,EACV,aAAa,EAAE,SAAS,EACxB,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GACjC,OAAO,CAAC,IAAI,CAAC,CAUf;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAI5E;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;IACtD,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,SAAS,GAAG,SAAS,CAAC;IACjC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC,CAcD"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { setDebugInterfaceName, getDebugInterfaceName, getToken, getAuthState, getCurrentUser, waitForAuthState, isDebugInterfaceAvailable, getDebugData, type AuthState, type User, } from './debug.js';
|
|
2
|
+
export { register, login, logout, generateUniqueUser, isLoggedIn, getCurrentUsername, type UserCredentials, type AuthResult, } from './auth.js';
|
|
3
|
+
export { getAPIConfig, registerUserViaAPI, loginUserViaAPI, createArticleViaAPI, deleteArticleViaAPI, updateUserViaAPI, getCurrentUserViaAPI, type APIConfig, type APIUser, type APIAuthResponse, } from './api.js';
|
|
4
|
+
export { createUserInIsolation, createUserViaAPI, setupAuthenticatedPage, createManyArticles, cleanupTestData, waitForAngular, safeGoto, type TestUser, type IsolatedUserContext, } from './setup.js';
|
|
5
|
+
export { getConfig, isCI, isDebug, getBrowserLaunchOptions, setTestEnv, type SamaroConfig, } from './config.js';
|
|
6
|
+
export { severity, tag, epic, feature, story, owner, description, descriptionHtml, link, issue, tms, allure, allureMeta, addLabel, addLink, addAttachment, attachScreenshot, attachJson, attachText, attachHtml, allureStep, getAllureMetadata, getAllureMetadataKeys, type Severity, type LinkType, type LabelName, type AllureMetadataOptions, } from './allure.js';
|
|
7
|
+
export type { Label, Link, Parameter, Attachment, Status, StatusDetails, StepResult, TestResult, TestResultContainer, } from 'allure-js-commons';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../helpers/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,yBAAyB,EACzB,YAAY,EACZ,KAAK,SAAS,EACd,KAAK,IAAI,GACV,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,QAAQ,EACR,KAAK,EACL,MAAM,EACN,kBAAkB,EAClB,UAAU,EACV,kBAAkB,EAClB,KAAK,eAAe,EACpB,KAAK,UAAU,GAChB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,SAAS,EACd,KAAK,OAAO,EACZ,KAAK,eAAe,GACrB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,QAAQ,EACR,KAAK,QAAQ,EACb,KAAK,mBAAmB,GACzB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,SAAS,EACT,IAAI,EACJ,OAAO,EACP,uBAAuB,EACvB,UAAU,EACV,KAAK,YAAY,GAClB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAEL,QAAQ,EACR,GAAG,EACH,IAAI,EACJ,OAAO,EACP,KAAK,EACL,KAAK,EACL,WAAW,EACX,eAAe,EACf,IAAI,EACJ,KAAK,EACL,GAAG,EACH,MAAM,EAGN,UAAU,EACV,QAAQ,EACR,OAAO,EACP,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EAGV,iBAAiB,EACjB,qBAAqB,EAGrB,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,qBAAqB,GAC3B,MAAM,aAAa,CAAC;AAGrB,YAAY,EACV,KAAK,EACL,IAAI,EACJ,SAAS,EACT,UAAU,EACV,MAAM,EACN,aAAa,EACb,UAAU,EACV,UAAU,EACV,mBAAmB,GACpB,MAAM,mBAAmB,CAAC"}
|