mirror of
https://github.com/johndoe6345789/metabuilder.git
synced 2026-04-24 22:04:56 +00:00
603 lines
13 KiB
JSON
603 lines
13 KiB
JSON
{
|
|
"$schema": "https://metabuilder.dev/schemas/package-playwright.schema.json",
|
|
"package": "system_critical_flows",
|
|
"version": "1.0.0",
|
|
"description": "System-wide critical user flows - proves all essential functionality works",
|
|
"tests": [
|
|
{
|
|
"name": "Flow 1.1: Home page loads with content",
|
|
"tags": [
|
|
"@smoke",
|
|
"@critical",
|
|
"@public"
|
|
],
|
|
"description": "Validates home page loads with heading and content",
|
|
"steps": [
|
|
{
|
|
"action": "navigate",
|
|
"url": ""
|
|
},
|
|
{
|
|
"action": "waitForLoadState",
|
|
"state": "domcontentloaded"
|
|
},
|
|
{
|
|
"action": "expect",
|
|
"selector": "body",
|
|
"assertion": {
|
|
"matcher": "toBeVisible"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Flow 1.2: Home page has navigation",
|
|
"tags": [
|
|
"@smoke",
|
|
"@public"
|
|
],
|
|
"description": "Validates navigation elements exist on home page",
|
|
"steps": [
|
|
{
|
|
"action": "navigate",
|
|
"url": ""
|
|
},
|
|
{
|
|
"action": "waitForLoadState",
|
|
"state": "domcontentloaded"
|
|
},
|
|
{
|
|
"action": "wait",
|
|
"timeout": 1000
|
|
},
|
|
{
|
|
"action": "expect",
|
|
"testId": "header-actions",
|
|
"assertion": {
|
|
"matcher": "toBeVisible"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Flow 1.3: Navigation to login page",
|
|
"tags": [
|
|
"@smoke",
|
|
"@critical",
|
|
"@public"
|
|
],
|
|
"description": "Validates navigating directly to login page",
|
|
"steps": [
|
|
{
|
|
"action": "navigate",
|
|
"url": "login"
|
|
},
|
|
{
|
|
"action": "waitForLoadState",
|
|
"state": "domcontentloaded"
|
|
},
|
|
{
|
|
"action": "expect",
|
|
"testId": "salesforce-login-page",
|
|
"assertion": {
|
|
"matcher": "toBeVisible"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Flow 2.1: Login page renders with form",
|
|
"tags": [
|
|
"@smoke",
|
|
"@auth"
|
|
],
|
|
"description": "Validates login page displays email, password, and submit button",
|
|
"steps": [
|
|
{
|
|
"action": "navigate",
|
|
"url": "login"
|
|
},
|
|
{
|
|
"action": "waitForLoadState",
|
|
"state": "domcontentloaded"
|
|
},
|
|
{
|
|
"action": "wait",
|
|
"timeout": 500
|
|
},
|
|
{
|
|
"action": "click",
|
|
"testId": "switch-to-material"
|
|
},
|
|
{
|
|
"action": "wait",
|
|
"timeout": 500
|
|
},
|
|
{
|
|
"action": "expect",
|
|
"testId": "email-input",
|
|
"assertion": {
|
|
"matcher": "toBeVisible"
|
|
}
|
|
},
|
|
{
|
|
"action": "expect",
|
|
"testId": "password-input",
|
|
"assertion": {
|
|
"matcher": "toBeVisible"
|
|
}
|
|
},
|
|
{
|
|
"action": "expect",
|
|
"testId": "login-button",
|
|
"assertion": {
|
|
"matcher": "toBeVisible"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Flow 2.2: Login validation - form elements visible",
|
|
"tags": [
|
|
"@auth",
|
|
"@validation"
|
|
],
|
|
"description": "Validates form elements are interactive",
|
|
"steps": [
|
|
{
|
|
"action": "navigate",
|
|
"url": "login"
|
|
},
|
|
{
|
|
"action": "waitForLoadState",
|
|
"state": "domcontentloaded"
|
|
},
|
|
{
|
|
"action": "expect",
|
|
"testId": "salesforce-password-input",
|
|
"assertion": {
|
|
"matcher": "toBeVisible"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Flow 2.3: Login form can be filled",
|
|
"tags": [
|
|
"@critical",
|
|
"@auth"
|
|
],
|
|
"description": "Validates login form inputs accept values",
|
|
"timeout": 10000,
|
|
"steps": [
|
|
{
|
|
"action": "navigate",
|
|
"url": "login"
|
|
},
|
|
{
|
|
"action": "waitForLoadState",
|
|
"state": "domcontentloaded"
|
|
},
|
|
{
|
|
"action": "wait",
|
|
"timeout": 500
|
|
},
|
|
{
|
|
"action": "click",
|
|
"testId": "switch-to-material"
|
|
},
|
|
{
|
|
"action": "wait",
|
|
"timeout": 500
|
|
},
|
|
{
|
|
"action": "fill",
|
|
"testId": "email-input",
|
|
"value": "testuser@metabuilder.dev"
|
|
},
|
|
{
|
|
"action": "fill",
|
|
"testId": "password-input",
|
|
"value": "TestPassword123!"
|
|
},
|
|
{
|
|
"action": "expect",
|
|
"testId": "login-button",
|
|
"assertion": {
|
|
"matcher": "toBeVisible"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Flow 2.4: Register page is accessible",
|
|
"tags": [
|
|
"@critical",
|
|
"@auth"
|
|
],
|
|
"description": "Validates register page is accessible",
|
|
"timeout": 10000,
|
|
"steps": [
|
|
{
|
|
"action": "navigate",
|
|
"url": "register"
|
|
},
|
|
{
|
|
"action": "waitForLoadState",
|
|
"state": "domcontentloaded"
|
|
},
|
|
{
|
|
"action": "expect",
|
|
"testId": "auth-layout",
|
|
"assertion": {
|
|
"matcher": "toBeVisible"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Flow 3.1: Home page has Workspaces content",
|
|
"tags": [
|
|
"@critical",
|
|
"@user"
|
|
],
|
|
"description": "Validates home page shows main content",
|
|
"timeout": 10000,
|
|
"steps": [
|
|
{
|
|
"action": "navigate",
|
|
"url": ""
|
|
},
|
|
{
|
|
"action": "waitForLoadState",
|
|
"state": "domcontentloaded"
|
|
},
|
|
{
|
|
"action": "expect",
|
|
"selector": "body",
|
|
"assertion": {
|
|
"matcher": "toBeVisible"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Flow 3.2: Home page loads successfully",
|
|
"tags": [
|
|
"@critical",
|
|
"@packages"
|
|
],
|
|
"description": "Validates home page loads without errors",
|
|
"steps": [
|
|
{
|
|
"action": "navigate",
|
|
"url": ""
|
|
},
|
|
{
|
|
"action": "waitForLoadState",
|
|
"state": "domcontentloaded"
|
|
},
|
|
{
|
|
"action": "expect",
|
|
"selector": "body",
|
|
"assertion": {
|
|
"matcher": "toBeVisible"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Flow 3.3: Home page navigation works",
|
|
"tags": [
|
|
"@navigation",
|
|
"@user"
|
|
],
|
|
"description": "Validates navigation elements work on home page",
|
|
"steps": [
|
|
{
|
|
"action": "navigate",
|
|
"url": ""
|
|
},
|
|
{
|
|
"action": "waitForLoadState",
|
|
"state": "domcontentloaded"
|
|
},
|
|
{
|
|
"action": "wait",
|
|
"timeout": 1000
|
|
},
|
|
{
|
|
"action": "expect",
|
|
"testId": "header-actions",
|
|
"assertion": {
|
|
"matcher": "toBeVisible"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Flow 4.1: Settings page is accessible",
|
|
"tags": [
|
|
"@admin",
|
|
"@critical"
|
|
],
|
|
"description": "Validates settings page is accessible",
|
|
"timeout": 10000,
|
|
"steps": [
|
|
{
|
|
"action": "navigate",
|
|
"url": "settings"
|
|
},
|
|
{
|
|
"action": "waitForLoadState",
|
|
"state": "domcontentloaded"
|
|
},
|
|
{
|
|
"action": "expect",
|
|
"selector": "body",
|
|
"assertion": {
|
|
"matcher": "toBeVisible"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Flow 4.2: Settings page has content",
|
|
"tags": [
|
|
"@admin",
|
|
"@list"
|
|
],
|
|
"description": "Validates settings page displays content",
|
|
"steps": [
|
|
{
|
|
"action": "navigate",
|
|
"url": "settings"
|
|
},
|
|
{
|
|
"action": "waitForLoadState",
|
|
"state": "domcontentloaded"
|
|
},
|
|
{
|
|
"action": "expect",
|
|
"selector": "body",
|
|
"assertion": {
|
|
"matcher": "toBeVisible"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Flow 4.3: Help page is accessible",
|
|
"tags": [
|
|
"@admin",
|
|
"@roles"
|
|
],
|
|
"description": "Validates help page is accessible",
|
|
"steps": [
|
|
{
|
|
"action": "navigate",
|
|
"url": "help"
|
|
},
|
|
{
|
|
"action": "waitForLoadState",
|
|
"state": "domcontentloaded"
|
|
},
|
|
{
|
|
"action": "expect",
|
|
"selector": "body",
|
|
"assertion": {
|
|
"matcher": "toBeVisible"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Flow 5.1: Plugins page is accessible",
|
|
"tags": [
|
|
"@admin",
|
|
"@packages"
|
|
],
|
|
"description": "Validates plugins page is accessible",
|
|
"steps": [
|
|
{
|
|
"action": "navigate",
|
|
"url": "plugins"
|
|
},
|
|
{
|
|
"action": "waitForLoadState",
|
|
"state": "domcontentloaded"
|
|
},
|
|
{
|
|
"action": "expect",
|
|
"selector": "body",
|
|
"assertion": {
|
|
"matcher": "toBeVisible"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Flow 5.2: Plugins are displayed",
|
|
"tags": [
|
|
"@admin",
|
|
"@packages"
|
|
],
|
|
"description": "Validates plugins page renders content",
|
|
"steps": [
|
|
{
|
|
"action": "navigate",
|
|
"url": "plugins"
|
|
},
|
|
{
|
|
"action": "waitForLoadState",
|
|
"state": "domcontentloaded"
|
|
},
|
|
{
|
|
"action": "expect",
|
|
"selector": "body",
|
|
"assertion": {
|
|
"matcher": "toBeVisible"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Flow 5.3: Workflows page is accessible",
|
|
"tags": [
|
|
"@admin",
|
|
"@packages"
|
|
],
|
|
"description": "Validates workflows page loads",
|
|
"steps": [
|
|
{
|
|
"action": "navigate",
|
|
"url": "workflows"
|
|
},
|
|
{
|
|
"action": "waitForLoadState",
|
|
"state": "domcontentloaded"
|
|
},
|
|
{
|
|
"action": "expect",
|
|
"selector": "body",
|
|
"assertion": {
|
|
"matcher": "toBeVisible"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Flow 6.1: Header navigation works",
|
|
"tags": [
|
|
"@smoke",
|
|
"@navigation"
|
|
],
|
|
"description": "Validates header is visible on home page",
|
|
"steps": [
|
|
{
|
|
"action": "navigate",
|
|
"url": ""
|
|
},
|
|
{
|
|
"action": "waitForLoadState",
|
|
"state": "domcontentloaded"
|
|
},
|
|
{
|
|
"action": "wait",
|
|
"timeout": 1000
|
|
},
|
|
{
|
|
"action": "expect",
|
|
"testId": "header-actions",
|
|
"assertion": {
|
|
"matcher": "toBeVisible"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Flow 6.2: Theme toggle works",
|
|
"tags": [
|
|
"@smoke",
|
|
"@navigation"
|
|
],
|
|
"description": "Validates theme toggle is visible",
|
|
"steps": [
|
|
{
|
|
"action": "navigate",
|
|
"url": ""
|
|
},
|
|
{
|
|
"action": "waitForLoadState",
|
|
"state": "domcontentloaded"
|
|
},
|
|
{
|
|
"action": "wait",
|
|
"timeout": 1000
|
|
},
|
|
{
|
|
"action": "expect",
|
|
"testId": "toggle-theme-button",
|
|
"assertion": {
|
|
"matcher": "toBeVisible"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Flow 6.3: Mobile navigation accessible",
|
|
"tags": [
|
|
"@responsive",
|
|
"@mobile"
|
|
],
|
|
"description": "Validates page is accessible on any viewport",
|
|
"steps": [
|
|
{
|
|
"action": "navigate",
|
|
"url": ""
|
|
},
|
|
{
|
|
"action": "waitForLoadState",
|
|
"state": "domcontentloaded"
|
|
},
|
|
{
|
|
"action": "expect",
|
|
"selector": "body",
|
|
"assertion": {
|
|
"matcher": "toBeVisible"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Flow 7.1: 404 page displays for invalid routes",
|
|
"tags": [
|
|
"@error-handling"
|
|
],
|
|
"description": "Validates 404 page displays for invalid routes",
|
|
"steps": [
|
|
{
|
|
"action": "navigate",
|
|
"url": "invalid-route-xyz-12345"
|
|
},
|
|
{
|
|
"action": "waitForLoadState",
|
|
"state": "domcontentloaded"
|
|
},
|
|
{
|
|
"action": "expect",
|
|
"testId": "not-found-state",
|
|
"assertion": {
|
|
"matcher": "toBeVisible"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Flow 7.2: Page loads in reasonable time",
|
|
"tags": [
|
|
"@performance",
|
|
"@critical"
|
|
],
|
|
"description": "Validates home page loads within acceptable time",
|
|
"timeout": 6000,
|
|
"steps": [
|
|
{
|
|
"action": "navigate",
|
|
"url": ""
|
|
},
|
|
{
|
|
"action": "waitForLoadState",
|
|
"state": "domcontentloaded"
|
|
},
|
|
{
|
|
"action": "expect",
|
|
"selector": "body",
|
|
"assertion": {
|
|
"matcher": "toBeVisible"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
} |