shiplightai 0.1.47 → 0.1.49
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/dist/cjs/debugger-pw.cjs +2 -2
- package/dist/cjs/fixture.cjs +74 -74
- package/dist/cjs/index.cjs +28 -28
- package/dist/cjs/reporter.cjs +65 -29
- package/dist/cli.js +167 -52
- package/dist/debugger-pw.js +3 -3
- package/dist/fixture.js +74 -74
- package/dist/index.js +30 -30
- package/dist/reporter.js +65 -29
- package/dist/static/assets/{index-ClD-Ul7O.js → index-ByMAsm4i.js} +2 -2
- package/dist/static/assets/{index-DP4PtPwQ.js → index-D0G607gU.js} +36 -34
- package/dist/static/index.html +1 -1
- package/package.json +6 -5
|
@@ -187421,7 +187421,7 @@ function dynamic(importFn, _options) {
|
|
|
187421
187421
|
);
|
|
187422
187422
|
return Wrapper;
|
|
187423
187423
|
}
|
|
187424
|
-
const MonacoEditor = dynamic(() => __vitePreload(() => import("./index-
|
|
187424
|
+
const MonacoEditor = dynamic(() => __vitePreload(() => import("./index-ByMAsm4i.js"), true ? [] : void 0), {});
|
|
187425
187425
|
const CodeEditor = ({
|
|
187426
187426
|
initialCode = "",
|
|
187427
187427
|
onConfirm,
|
|
@@ -198255,37 +198255,39 @@ function LocalDebuggerPage() {
|
|
|
198255
198255
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: { height: "100vh", display: "flex", flexDirection: "column" }, children: [
|
|
198256
198256
|
/* @__PURE__ */ jsxRuntimeExports.jsx(Notifications$1, { position: "top-right" }),
|
|
198257
198257
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: { display: "flex", flex: 1, overflow: "hidden" }, children: [
|
|
198258
|
-
|
|
198259
|
-
|
|
198260
|
-
|
|
198261
|
-
|
|
198262
|
-
|
|
198263
|
-
|
|
198264
|
-
|
|
198265
|
-
|
|
198266
|
-
|
|
198267
|
-
|
|
198268
|
-
|
|
198269
|
-
),
|
|
198270
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
198271
|
-
"div",
|
|
198272
|
-
{
|
|
198273
|
-
onMouseDown: handleMouseDown,
|
|
198274
|
-
style: {
|
|
198275
|
-
width: 4,
|
|
198276
|
-
cursor: "col-resize",
|
|
198277
|
-
background: "transparent",
|
|
198278
|
-
flexShrink: 0,
|
|
198279
|
-
borderRight: "1px solid var(--mantine-color-default-border)"
|
|
198280
|
-
},
|
|
198281
|
-
onMouseEnter: (e) => {
|
|
198282
|
-
e.currentTarget.style.background = "var(--mantine-color-blue-light)";
|
|
198283
|
-
},
|
|
198284
|
-
onMouseLeave: (e) => {
|
|
198285
|
-
if (!draggingRef.current) e.currentTarget.style.background = "transparent";
|
|
198258
|
+
config2 && !config2.initialFile && treeRoot && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
198259
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
198260
|
+
FileTreeSidebar,
|
|
198261
|
+
{
|
|
198262
|
+
treeRoot,
|
|
198263
|
+
expandToDir: (selectedFile == null ? void 0 : selectedFile.includes("/")) ? selectedFile.substring(0, selectedFile.lastIndexOf("/")) : config2.initialDir,
|
|
198264
|
+
selectedFile,
|
|
198265
|
+
onSelectFile: selectFile,
|
|
198266
|
+
onChangeTreeRoot: setTreeRoot,
|
|
198267
|
+
width: sidebarWidth,
|
|
198268
|
+
disabled: hasActiveSession
|
|
198286
198269
|
}
|
|
198287
|
-
|
|
198288
|
-
|
|
198270
|
+
),
|
|
198271
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
198272
|
+
"div",
|
|
198273
|
+
{
|
|
198274
|
+
onMouseDown: handleMouseDown,
|
|
198275
|
+
style: {
|
|
198276
|
+
width: 4,
|
|
198277
|
+
cursor: "col-resize",
|
|
198278
|
+
background: "transparent",
|
|
198279
|
+
flexShrink: 0,
|
|
198280
|
+
borderRight: "1px solid var(--mantine-color-default-border)"
|
|
198281
|
+
},
|
|
198282
|
+
onMouseEnter: (e) => {
|
|
198283
|
+
e.currentTarget.style.background = "var(--mantine-color-blue-light)";
|
|
198284
|
+
},
|
|
198285
|
+
onMouseLeave: (e) => {
|
|
198286
|
+
if (!draggingRef.current) e.currentTarget.style.background = "transparent";
|
|
198287
|
+
}
|
|
198288
|
+
}
|
|
198289
|
+
)
|
|
198290
|
+
] }),
|
|
198289
198291
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: { flex: 1, display: "flex", flexDirection: "column", overflow: "hidden" }, children: renderEditor() })
|
|
198290
198292
|
] })
|
|
198291
198293
|
] });
|
|
@@ -198305,12 +198307,12 @@ const Login = { "title": "Login", "continueWithGoogle": "Continue with Google",
|
|
|
198305
198307
|
const OAuth = { "slackCallback": { "loading": "Loading...", "processingLogin": "Processing login...", "errorWithMessage": "Error: {error}", "parentClosedWarning": "Parent window was closed before callback." } };
|
|
198306
198308
|
const Invite = { "accept": { "loadingInvitation": "Loading invitation...", "invalidInvitationTitle": "Invalid Invitation", "goToLogin": "Go to Login", "acceptedTitle": "Invitation Accepted!", "memberOfOrganization": "You are now a member of {organization}", "loginToAccess": "Please log in to access your organization", "youAreInvitedTitle": "You've been invited!", "youAreInvitedSubtitle": "You've been invited to join an organization", "cancel": "Cancel", "acceptInvitation": "Accept Invitation", "labels": { "organization": "Organization", "invitedEmail": "Invited Email", "role": "Role", "invitedBy": "Invited by", "expires": "Expires" }, "roles": { "admin": "Admin", "member": "Member" }, "errors": { "failedToLoadInvitation": "Failed to load invitation", "invalidInvitation": "Invalid invitation", "failedToLoadInvitationDetails": "Failed to load invitation details", "failedToAcceptInvitation": "Failed to accept invitation" } } };
|
|
198307
198309
|
const GeneralSettings = { "sectionProfile": "Profile", "profilePicture": "Profile picture", "profilePictureFormats": "Supported formats: PNG/JPEG/JPG. Maximum file size: 5MB", "email": "Email", "fullName": "Full Name", "fullNamePlaceholder": "Enter your full name", "saveChanges": "Save Changes", "clear": "Clear", "avatarClearedTitle": "Avatar Cleared", "avatarClearedMessage": "Click Save Changes to update your profile", "sectionAppearance": "Appearance", "theme": "Theme", "language": "Language", "sectionDevelopment": "Development", "experimentalFeatures": "Experimental Features", "debugging": "Debugging", "profileUpdatedMessage": "Profile updated successfully", "profileUpdateFailedMessage": "Failed to update profile", "avatarUpdatedMessage": "Avatar updated successfully", "avatarUpdateFailedMessage": "Failed to update avatar" };
|
|
198308
|
-
const TestCases = /* @__PURE__ */ JSON.parse(`{"cannotUpdateSystemViews":"Cannot update system views","viewUpdatedSuccessfully":"View updated successfully","failedToUpdateView":"Failed to update view","generateAiTitle":"Generate AI Title","revertToOriginalTitle":"Revert to Original Title","runInCloud":"Run in Cloud","hideDetails":"Hide details","showDetails":"Show details","testMustBeActiveToRunInCloud":"Test must be Active to run in cloud","cannotRunTest":"Cannot Run Test","testCaseMustBeActiveToRun":"Test case must be Active to run","failedToLoadTestCaseDetails":"Failed to load test case details","failedToUpdateTestCaseStatus":"Failed to update test case status","testCaseDuplicatedSuccessfully":"Test case duplicated successfully","failedToDuplicateTestCase":"Failed to duplicate test case","testCaseStatusUpdated":"Test case status updated","runTest":"Run Test","testCaseMustBeActive":"Test Case must be Active to run","viewRecording":"View Recording","noRecordingAvailable":"No Recording Available","deleteTestCaseTitle":"Delete test case?","deleteTestCaseInUse":"This test case is used as a dependency for other tests. Please remove the dependency first.","deleteTestCaseConfirm":"Are you sure you want to delete","deleteTestCaseUndone":"This action cannot be undone.","setupBadgeLabel":"Setup","setupBadgeTooltip":"This test is used as a setup test for other tests","teardownBadgeLabel":"Teardown","teardownBadgeTooltip":"This test is used as a teardown test for other tests","loadingTestCaseDetails":"Loading test case details","deleteSelected":"Delete Selected","deleteTestCasesTitle":"Delete test cases?","deleteTestCasesInUse":"Some test cases are used as dependencies for other tests. Please remove these dependencies first.","theseTestCases":"These test cases","thisTestCase":"This test case","statusLabel":"Status","labelsLabel":"Labels","failedToUpdateTestCaseLabel":"Failed to update test case label","detailPage":{"failedToLoadTestCase":"Failed to load test case","testCaseNotFound":"Test case not found","returnToTestCases":"Return to Test Cases","retry":"Retry"},"runTestModal":{"titleSingle":"Run Test in Cloud","titleMultiple":"Run {count} Test Case(s) in Cloud","titleSuite":"Run Test Suite in Cloud","titleSchedule":"Run Schedule in Cloud","runButton":"Run Test","runMultipleButton":"Run {count} Test(s)","envDescription":"Only environments configured for this test case are shown","envMultiDescription":"Test cases will run using the selected environment. Test cases that don't support this environment will be skipped."},"failedToLoadTestAccounts":"Failed to load test accounts","fixAcceptedTitle":"Fix accepted","fixAcceptedMessage":"The AI fix has been applied to the test case.","fixRejectedTitle":"Fix rejected","fixRejectedMessage":"The AI fix has been rejected and will not be used in future runs.","testFlowReverted":"Test flow reverted to this version","environmentRequired":"Environment is required","environmentSetAsStepEditorEnv":"Environment set as step editor env successfully","deleteEnvironmentConfigTitle":"Delete Environment Config?","environmentConfigDeletedSuccessfully":"Environment config deleted successfully","knowledgeExtractedTitle":"Knowledge Extracted","extractionFailedTitle":"Extraction Failed","saveBLockedTitle":"Save Blocked","saveBlockedNestedTemplates":"Templates cannot contain nested templates. Remove nested template references before saving.","templateInsertedTitle":"Template Inserted","templateInsertedMessage":"Template content inserted as a normal group. Nested templates are not allowed, so the content has been copied instead of referenced.","sessionTimedOutTitle":"Session timed out","sessionTimedOutMessage":"Your session was reset due to inactivity. Start debug again to continue.","testFlowUnsavedChangesTitle":"Test flow has unsaved changes","testFlowUnsavedChangesMessage":"Current test flow has unsaved changes. Please save first, or leave this page and discard the changes.","continueEditing":"Continue Editing","discardAndLeave":"Discard And Leave","failedToLoadTestAccountsNotification":"Failed to load test accounts","loadingTestCaseDetailsState":"Loading test case details...","generatingTestCase":"Generating Test Case","stop":"Stop","generatingDescription":"This might take a few minutes. You can stop the process at any time.","agentCouldNotComplete":"Agent could not complete the task","dismissWarning":"Dismiss warning","nativeTestWarning":"Native app tests (Android/iOS) can only be edited and debugged in the desktop app.","convertingTestFormat":"Converting test format...","selectPlaceholder":"Select {title}","viewTestCaseTooltip":"View test case: {title}","summaryTitle":"Summary","generateAiSummary":"Generate AI Summary","resetToOriginalSummary":"Reset to original summary","saving":"Saving...","clickToAddSummary":"Click to add a test summary...","labelsTitle":"Labels","addLabel":"Add label","testSuitesTitle":"Test Suites","addToTestSuite":"Add to test suite","statusGenerating":"AI agent is generating your test case","statusQueued":"Test case is queued for generation","statusGeneratingLabel":"Generating","statusQueuedLabel":"Queued","changeStatus":"Change Status","searchTestCases":"Search test cases...","columnId":"ID","columnName":"Name","columnStatus":"Status","setupTeardownMenu":{"selectTitle":"Select {title}"},"parameterSets":{"description":"Named variable sets. Each enabled set produces an independent result row when the test is run in this schedule.","columnLabel":"Label","columnVariables":"Variables","columnEnabled":"Enabled","defaultLabel":"Default","testCaseVariablesLabel":"test case variables","addParameterSet":"Add Parameter Set","editParameterSet":"Edit Parameter Set","editDefaultVariables":"Edit Default Variables","deleteParameterSet":"Delete Parameter Set","labelField":"Label","labelPlaceholder":"e.g. Admin, Guest User","labelAlreadyExists":"A parameter set with this label already exists.","deleteConfirm":"Are you sure you want to delete this parameter set? This cannot be undone.","editDefaultDescription":"These are the test case's own variables. Changes here update the test case settings and apply to all schedules that don't override them with a custom parameter set.","add":"Add","update":"Update"},"variables":{"title":"Variables","description":"Variables scoped to this test case. They override environment and global variables with the same name.","columnName":"Name","columnValue":"Value","addVariable":"Add Variable","namePlaceholder":"name","valuePlaceholder":"value","nameRequired":"Required","nameAlreadyExists":"Already exists","sensitiveMasked":"Sensitive: value is masked in the UI and logs","markSensitive":"Mark as sensitive to mask the value in the UI and logs"},"debuggerWarnings":{"heading":"Statements have been modified during debugging","body":"Changes made during debugging session may not reflect actual execution behavior. Consider restarting the debugging session to ensure consistency."},"debuggerButtonBar":{"undoRevert":"Undo revert","revertChanges":"Revert changes","undo":"Undo","revert":"Revert","saveChanges":"Save all changes to statements","noChanges":"No changes to save","save":"Save","saved":"Saved","disabledDuringGeneration":"Disabled during test generation","startWithOverride":"Initialize debugging session with URL override: {url} (Ctrl + R)","startDebugging":"Initialize debugging session and execute first statement (Ctrl + R)","noMoreStatements":"No more statements to execute","executeNext":"Execute the next statement in sequence (Ctrl + R)","urlOverrideTooltip":"URL override: {url}","setUrlOverride":"Set URL override","urlOverrideSection":"URL Override","urlOverridePlaceholder":"https://example.com/path","waitingForStep":"Waiting for current step to complete...","pauseExecution":"Pause execution after current step","executeAll":"Execute all remaining statements","pause":"Pause","run":"Run","resetSession":"Reset session","reset":"Reset","start":"Start","step":"Step"},"statementBadge":{"unsavedChanges":"Unsaved changes"},"ifElseStatement":{"then":"Then","else":"Else","expandThen":"Expand then branch","collapseThen":"Collapse then branch","expandElse":"Expand else branch","collapseElse":"Collapse else branch","clearThenBranch":"Clear Then Branch","clearThenTooltip":"Remove all statements from the THEN branch. The ELSE branch (if present) will not be affected. This action cannot be undone.","addElseBranch":"Add else branch","removeElseBranch":"Remove else branch","aiCondition":"AI Condition: Natural language evaluation","jsCondition":"JS Condition: JavaScript expression","ifElseActions":"If/Else Actions","clickToAddCondition":"Click to add condition","disabled":"Disabled","conditionPlaceholder":"Enter condition expression...","clearThenItem1":"Remove all statements from the THEN branch.","clearThenItem2":"The ELSE branch (if present) will not be affected.","clearThenItem3":"This action cannot be undone."},"whileLoopStatement":{"loopBody":"Loop Body","expandLoop":"Expand loop body","collapseLoop":"Collapse loop body","secondsMax":"seconds max","clearLoopBody":"Clear Loop Body","clearLoopTooltip":"Remove all statements from the loop body. The loop condition will remain unchanged. This action cannot be undone.","aiCondition":"AI Condition: Natural language evaluation","jsCondition":"JS Condition: JavaScript expression","loopActions":"Loop Actions","clickToAddCondition":"Click to add condition","disabled":"Disabled","conditionPlaceholder":"Enter loop condition...","clearBodyItem1":"Remove all statements from the loop body.","clearBodyItem2":"The loop condition will remain unchanged.","clearBodyItem3":"This action cannot be undone."},"floatingAddButton":{"addNewStep":"Add a new step"},"saveTemplate":{"title":"Save as Template","nameLabel":"Name","namePlaceholder":"e.g., user-registration, checkout-flow","nameDescription":"Give this template a unique name for easy identification","nameRequired":"Name is required","nameExists":"Name \\"{name}\\" already exists","description":"Description","nameAlreadyExists":"Name Already Exists"},"selectTemplate":{"title":"Select Template","searchPlaceholder":"Search templates...","noMatch":"No templates match your search","noTemplates":"No templates available","columnName":"Name","columnDescription":"Description","copyTooltip":"Insert as independent copy. Changes to the template won't affect this group.","linkTooltip":"Link to template. This group will stay in sync with the template.","linkDisabledTooltip":"Templates can't link other templates. Use Copy instead.","copy":"Copy","link":"Link","copyButton":"Copy Button","linkButton":"Link Button","noTemplatesAvailable":"No Templates Available","noTemplatesMatchSearch":"No Templates Match Search"},"statementList":{"noStatements":"No statements","noStatementsReadOnly":"No statements (read-only)"},"suiteSectionDivider":{"skipped":" (skipped)","skippedSuffix":"Skipped Suffix"},"codeEditor":{"cancelTooltip":"Cancel (Esc)","confirmTooltip":"Confirm code (Ctrl+Enter)","hint":"Press Ctrl+Enter to confirm, Esc to cancel","unsavedChanges":"• Unsaved changes","clickToOpen":"Click to open code editor"},"actionEntityEditor":{"cancelTooltip":"Cancel (Esc)","confirmTooltip":"Confirm changes (Ctrl+Enter)","hint":"Press Ctrl+Enter to confirm, Esc to cancel","shortcutHint":"{modifier}+↵ save · esc cancel","unsavedChanges":"• Unsaved changes","missingActionName":"Missing action name","invalidYaml":"Invalid YAML","viewTitle":"View action entity","editTitle":"Click to edit action entity"},"extractContentEditor":{"configurePrompt":"Click to configure variable extraction...","extractAndSave":"Extract <elem>{element}</elem> and save to <var>{variable}</var>","clickToEdit":"Click to edit","clickToConfigure":"Click to configure","configurePlaceholder":"Configure Placeholder","extractDisplayText":"Extract Display Text"},"extractContentModal":{"title":"Extract Content Configuration","whatToExtract":"What to extract","extractPlaceholder":"e.g., order number, user name, price from the table...","extractDescription":"Describe the page element or content you want to extract","variableName":"Variable name","variablePlaceholder":"e.g., orderNumber, userName, tablePrice","variableDescription":"Name of the variable to store the extracted value","extractContent":"Extract Content"},"extractEmailContentEditor":{"noConfigured":"No email content extraction configured","configurePrompt":"Click to configure email content extraction...","variableTooltip":"The variable name will be used to store the extracted content.","variableLabel":"Variable: {name}","clickToConfigure":"Click To Configure","clickToEdit":"Click To Edit","configurePlaceholder":"Configure Placeholder","noConfig":"No Config"},"extractEmailContentModal":{"title":"Email Content Extraction Configuration","selectConfig":"Select configuration","selectConfigPlaceholder":"Select a saved configuration","forwardEmail":"Forward Email","extractionType":"Extraction Type","extractionTypePlaceholder":"Select extraction type","extractionTypeDescription":"The type of content to extract from emails","prompt":"Prompt","promptPlaceholder":"Enter custom prompt for extraction (optional)","promptDescription":"Optional: Custom prompt to guide the extraction process","filterFromEmail":"Filter From Email","filterFromPlaceholder":"Enter email address to filter by sender","filterFromDescription":"Required: Email address to filter emails by sender","filterToEmail":"Filter To Email","filterToPlaceholder":"Enter email address to filter by recipient (optional)","filterToDescription":"Optional: Email address to filter emails by recipient","filterSubject":"Filter Subject","filterSubjectPlaceholder":"Enter subject text to filter by (optional)","filterSubjectDescription":"Optional: Text that must be contained in the email subject","filterBodyContains":"Filter Body Contains","filterBodyPlaceholder":"Enter text that must be in email body (optional)","filterBodyDescription":"Optional: Text that must be contained in the email body","extractionTypeRequired":"Extraction type is required","filterFromEmailRequired":"Filter from email is required"},"fileUploadEditor":{"uploadFile":"Upload file","uploadFiles":"Upload {count} files","noFilesSelected":"No files selected","selectFiles":"Select files to upload","clickToChange":"Click to change files","uploadText":"Upload Text"},"fileUploadModal":{"title":"Select Test Data Files","targetLabel":"(Optional) Upload Target Description","targetSublabel":"(when there are multiple on the page)","targetPlaceholder":"Target description (optional, e.g., 'profile picture upload')","searchPlaceholder":"Search files by name...","loadError":"Failed to load test data files","noFilesMatch":"No files match your search","noFilesAvailable":"No test data files available. Upload files in the Test Data section to use them here.","clearTarget":"Clear target description","selectFile":"Select File","selectFiles":"Select {count} Files"},"functionEditor":{"noParameters":"No parameters","configuredViaModal":"Functions are configured via modal dialog"},"loginEditor":{"configurePrompt":"Click to configure login credentials...","clickToEdit":"Click to edit login configuration","clickToConfigure":"Click to configure login","configurePlaceholder":"Configure Placeholder"},"loginModal":{"title":"Login Configuration","environment":"Environment","environmentPlaceholder":"Select environment (optional)","environmentDescription":"Optional: Environment to login to. If not specified, the session's default environment will be used.","testAccount":"Test Account","selectTestAccount":"Select test account","noAccountsForEnv":"No test accounts available for this environment","noGlobalAccounts":"No global test accounts available","testAccountRequired":"Test Account ID is required","selectAccountDescription":"Select the test account to use for login","createdPrefix":"Created:","idPrefix":"ID:","saveConfiguration":"Save Configuration"},"waitUntilEditor":{"conditionPlaceholder":"Condition: e.g., The loading spinner disappears","clickToAdd":"Click to add wait condition","secondsMaxWait":"seconds max wait"},"jsonViewer":{"base64ImageLabel":"[Base64 Image - Click to view]","imagePreview":"Image Preview","base64ImageAlt":"Base64 image preview","imageAlt":"Image preview","imagePreviewAlt":"Image Preview Alt","previewTitle":"Preview Title"},"codeTab":{"description":"This code is dynamically generated from the test flow. Edit steps in the Steps tab to modify the test.","error":"Error: {error}","readOnlyPreview":"Read-only preview"},"settingsTab":{"loadingDetails":"Loading test case details...","failedToLoadAccounts":"Failed to load test accounts"},"actionStatement":{"showHideDetails":"Show/Hide details","showDebugInfo":"Show debug info","removeLocator":"Remove locator","debugInfoTitle":"Action Generation Debug Info","picking":"Picking...","pickLocator":"Pick Locator","aiAssertion":"AI Assertion: Natural language verification","jsAssertion":"JS Assertion: Playwright expect expression","aiGroup":"AI Group: Natural language description","groupContainer":"Group Container: Contains nested statements","aiAction":"AI Action: Auto-adapts to page changes","regularAction":"Uses cached element selectors","pureVision":"Pure Vision: Uses only visual analysis","hybridMode":"Hybrid Mode: Uses DOM + visual analysis"},"actionEditor":{"selectActionType":"Select an action type from the dropdown above...","enterAssertion":"Enter assertion description...","functionModal":"Function will be configured via modal...","loginModal":"Login credentials will be configured via modal...","emailModal":"Email extraction will be configured via modal...","waitCondition":"Wait condition will be configured below...","enterAction":"Enter action description...","clickToAdd":"Click to add description"},"newStepEditor":{"loadingDetails":"Loading test case details...","agentCouldNotComplete":"Agent Could Not Complete","convertingFormat":"Converting Format","dismissWarning":"Dismiss Warning"},"actionWithSwitch":{"aiAction":"AI Action","action":"Action","switchToRegular":"Switch to regular action","switchToAi":"Switch to AI action"},"debugStatusIcon":{"skipped":"Skipped","streaming":"Streaming...","executing":"Executing...","executionSuccessful":"Execution successful","executionFailed":"Execution failed","nextStatement":"Next statement to be executed","convertedToAi":"Statement was converted to AI mode for successful execution"},"conditionInput":{"placeholder":"Enter condition expression...","disabled":"Disabled","clickToAddCondition":"Click to add condition"},"environmentConfigForm":{"testAccount":"Test Account","setAsDefault":"Set as default environment for Test Editor","setAsDefaultDescription":"This environment will be used as the default when editing the test steps.","hooksDescription":"Templates that run before/after test execution"},"latestRun":{"notAvailable":"N/A","invalidDate":"Invalid date","seconds":"{totalSeconds} seconds","pending":"Pending","latestResult":"Latest Result","viewRunDetails":"View run details (#{id})","result":"Result","startTime":"Start Time","endTime":"End Time","duration":"Duration","environment":"Environment","default":"Default"},"resizableEditor":{"editor":"Editor","preview":"Preview","clickToExpand":"Click to expand","clickToCollapse":"Click to collapse","dragToResize":"Drag to resize"},"statementWrapper":{"skipped":"Skipped","failed":"Failed","passed":"Passed","addedByAiFix":" · Added by AI fix","modifiedByAiFix":" · Modified by AI fix","movedByAiFix":" · Moved by AI fix","autoHealed":" · Auto healed","showingHealed":"Showing healed action step. Click to switch back to original.","showingOriginal":"Showing original action step. Click to switch to healed.","added":"Added","original":"Original","modified":"Modified","moved":"Moved","draggingDisabled":"Dragging disabled during debugging","dragToReorder":"Drag to reorder","rollbackToStatement":"Rollback to this statement","skipToStatement":"Skip to this statement","executeStatement":"Execute this statement","executeUntilStatement":"Execute until this statement.","executeThisStepDescription":"Executes this step.","executeThisStepItem1":"This will execute the step itself.","executeThisStepItem2":"Use this to quickly test a specific part of the test flow.","runUntilThisStep":"Run Until This Step","runUntilThisStepDescription":"Runs the test flow until this step is executed.","runUntilThisStepItem1":"This will not execute the step itself.","runUntilThisStepItem2":"Use this to quickly test a specific part of the test flow.","currentStatement":"This is the current statement.","editStatement":"Edit Statement","duplicate":"Duplicate","delete":"Delete","actionsLabel":"Actions","draft":"Draft","action":"Action","assertion":"Assertion","code":"Code","function":"Function","uploadFile":"Upload file","extract":"Extract","waitUntil":"Wait Until","group":"Group","template":"Template","extractEmailContent":"Extract Email Content","controlFlows":"Control Flows","ifElse":"If/Else","loop":"Loop","draftTooltip":"A Draft is a flexible statement that converts to Action or Group after execution. Use this when you're not sure if your instruction will need one or multiple steps. After execution, it automatically becomes an Action (single step) or Group (multiple steps) based on what the AI produces. (Ctrl+Alt+B)","draftInstruction1":"A Draft is a flexible statement that converts after execution.","draftInstruction2":"If the AI produces one action, it becomes an Action.","draftInstruction3":"If the AI produces multiple actions, it becomes a Group.","draftInstruction4":"Use this when you're not sure how many steps your instruction will need.","actionTooltip":"An Action performs interactions with the page using natural language descriptions. Examples: \\"Click the submit button\\", \\"Fill in the email field with user@example.com\\", \\"Select California from the state dropdown\\". The AI agent interprets your description and executes the appropriate browser action. (Ctrl+Alt+A)","actionInstruction1":"An Action performs interactions with the page using natural language descriptions.","actionInstruction2":"The AI agent interprets your description and executes the appropriate browser action.","actionInstruction3":"Examples: \\"Click the first search result\\", \\"Scroll to the reviews section\\", \\"Wait for the page to load\\"","assertionTooltip":"An Assertion verifies that something on the page matches your expectations. Examples: \\"The page title should contain Welcome\\", \\"The error message should be visible\\", \\"The cart total should be $99.99\\". Tests will fail if assertions are not met. (Ctrl+Alt+T)","assertionInstruction1":"An Assertion verifies that something on the page matches your expectations.","assertionInstruction2":"Tests will fail if assertions are not met.","assertionInstruction3":"Examples: \\"The page title should contain Welcome\\", \\"The error message should be visible\\", \\"The cart total should be $99.99\\"","editInstruction1":"Edit this statement's configuration, description, or parameters.","editInstruction2":"For actions and assertions, you can modify the natural language description.","editInstruction3":"For code blocks, edit the JavaScript directly.","duplicateTooltip":"Duplicate this statement and all its contents. Useful for creating similar actions with minor variations or repeating patterns. The copy will be inserted immediately after this statement.","duplicateInstruction1":"Duplicate this statement and all its contents.","duplicateInstruction2":"Useful for creating similar actions with minor variations or repeating patterns.","duplicateInstruction3":"The copy will be inserted immediately after this statement.","deleteTooltip":"Delete this statement permanently. For containers like Steps or If/Else blocks, this will also delete all nested statements. Use Ctrl+Alt+D for quick deletion. (Ctrl+Alt+D)","deleteInstruction1":"Permanently removes this statement from the test case.","deleteInstruction2":"For containers like Steps or If/Else blocks, this will also delete all nested statements.","deleteInstruction3":"Use Ctrl+Alt+D for quick deletion.","codeTooltip":"Code blocks execute custom JavaScript directly in the browser context. Use for complex logic, data manipulation, or operations not easily expressed in natural language. Examples: calculating values, parsing JSON, setting cookies, or interacting with browser APIs. Code has access to the page object and all Playwright APIs. (Ctrl+Alt+C)","codeInstruction1":"Code blocks execute custom JavaScript directly in the browser context.","codeInstruction2":"Use for complex logic, data manipulation, or operations not easily expressed in natural language.","codeInstruction3":"The code has access to the page object and can use await for async operations.","codeInstruction4":"Examples: Calculate values, parse JSON, set cookies, or interact with browser APIs.","functionTooltip":"Functions are reusable test components that accept parameters. Use them to avoid duplicating common sequences like login flows, form submissions, or navigation patterns. Example: A \\"Login\\" function with username and password parameters can be reused across multiple tests. (Ctrl+Alt+F)","functionInstruction1":"Functions are reusable test components that accept parameters.","functionInstruction2":"Use them to avoid duplicating common sequences like login flows, form submissions, or navigation patterns.","functionInstruction3":"Examples: A \\"Login\\" function with username and password parameters can be reused across multiple tests.","uploadFileTooltip":"Upload File actions attach files from your Test Data library to file input elements on the page. First upload files in the Test Data section, then select them here. Useful for testing file uploads, document processing, or image submissions. The action automatically handles file input elements and drag-and-drop zones. (Ctrl+Alt+U)","uploadFileInstruction1":"Upload File actions attach files from your Test Data library to file input elements on the page.","uploadFileInstruction2":"First upload files in the Test Data section, then select them here.","uploadFileInstruction3":"Useful for testing file uploads, document processing, or image submissions.","uploadFileInstruction4":"The action automatically handles file input elements and drag-and-drop zones.","extractTooltip":"Extract actions capture content from the page and save it to variables for later use. Examples: \\"Extract the order confirmation number and save to orderNumber\\", \\"Extract the user ID from the profile page and save to userId\\". These variables can be referenced in subsequent actions using $variableName syntax. (Ctrl+Alt+E)","extractInstruction1":"Extract actions capture content from the page and save it to variables for later use.","extractInstruction2":"These variables can be referenced in subsequent actions using $variableName syntax.","extractInstruction3":"Examples: \\"Extract the order confirmation number and save to orderNumber\\", \\"Extract the user ID from the profile page and save to userId\\".","waitUntilTooltip":"Wait for a specific condition to be met before continuing. Use natural language to describe what to wait for, like \\"The loading spinner disappears\\" or \\"The success message appears\\". Set a maximum timeout to prevent tests from hanging. (Ctrl+Alt+W)","waitUntilInstruction1":"Wait for a specific condition to be met before continuing.","waitUntilInstruction2":"Use natural language to describe what to wait for.","waitUntilInstruction3":"Examples: \\"The loading spinner disappears\\", \\"The success message appears\\".","waitUntilInstruction4":"Set a maximum timeout to prevent tests from hanging.","groupTooltip":"Groups are logical containers that organize related actions together. Use them to structure your test into meaningful sections like \\"User Registration\\", \\"Checkout Process\\", or \\"Search and Filter\\". Groups can be collapsed/expanded and help with test readability and maintenance. (Ctrl+Alt+G)","groupInstruction1":"Groups are logical containers that organize related actions together.","groupInstruction2":"Use them to structure your test into meaningful sections like \\"User Registration\\", \\"Checkout Process\\", or \\"Search and Filter\\".","groupInstruction3":"Groups can be collapsed/expanded and help with test readability and maintenance.","templateTooltip":"Templates are pre-defined step groups. Convert this statement to a template reference, then select a template to auto-populate common test patterns like login, navigation, or form submission. (Ctrl+Alt+R)","templateInstruction1":"Templates reference pre-defined step groups for common test patterns.","templateInstruction2":"After conversion, select a template to auto-populate actions.","templateInstruction3":"Examples: login flow, navigation, form submission, data verification.","templateInstruction4":"Helps maintain consistency across tests and reduces duplication.","extractEmailContentTooltip":"Extract specific content from emails like verification codes, activation links, or custom data. Configure filters to target emails from specific senders, with specific subjects, or containing certain text. The extracted content is automatically saved as a variable for use in subsequent test steps.","extractEmailContentInstruction1":"Extract specific content from emails like verification codes or activation links.","extractEmailContentInstruction2":"Configure filters to target emails from specific senders or with specific subjects.","extractEmailContentInstruction3":"Set custom prompts to guide the extraction process.","extractEmailContentInstruction4":"Extracted content is automatically saved as a variable for use in subsequent steps.","ifElseTooltip":"If/Else statements execute different actions based on conditions. The condition can be JavaScript code or natural language. Example: \\"If the user is logged in\\" then perform checkout actions, else show login form. Useful for handling different states, A/B tests, or dynamic content. (Ctrl+Alt+I)","ifElseInstruction1":"If/Else statements execute different actions based on conditions.","ifElseInstruction2":"The condition can be JavaScript code or natural language.","ifElseInstruction3":"Examples: \\"If the user is logged in\\" then perform checkout actions, else show login form.","loopTooltip":"While loops repeat a set of actions as long as a condition is true. Examples: \\"While there are more pages\\" click next and extract data, \\"While the loading spinner is visible\\" wait. Use for pagination, polling for changes, or processing lists of unknown length. Include a maximum iteration limit to prevent infinite loops. (Ctrl+Alt+L)","loopInstruction1":"While loops repeat a set of actions as long as a condition is true.","loopInstruction2":"The condition is checked before each iteration.","loopInstruction3":"Examples: \\"While there are more pages\\" click next and extract data, \\"While the loading spinner is visible\\" wait."},"stepStatement":{"groupActions":"Group Actions","clearAll":"Clear All","clearAllTooltip":"Remove all statements from this step container. This action cannot be undone.","clearAllItem1":"Remove all statements from this step container.","clearAllItem2":"This action cannot be undone.","saveAsTemplateTooltip":"Save this group as a template that can be reused in other test cases.","saveAsTemplateItem1":"Save this group as a template.","saveAsTemplateItem2":"The template can be used in other test cases.","saveAsTemplateItem3":"Current group will be converted to reference the new template."},"createForm":{"titleLabel":"Title","titlePlaceholder":"Enter test case title","showLess":"Show Less","showMore":"Show More","startingUrlLabel":"Starting URL","testAccountLabel":"Test Account","disableAutoLogin":"Disable auto login","targetPlatformLabel":"Target Platform and Device","selectSpecificDevice":"Select specific device","loadingDevices":"Loading devices...","selectAndroidDevice":"Select Android device","iosComingSoon":"iOS device selection coming soon","nativeMobileTesting":"Native mobile app testing via Appium","deviceOptimized":"Test will be optimized for the selected device viewport and characteristics","folderLabel":"Folder","folderOptional":"(optional)","folderPlaceholder":"Select a folder (leave empty for root)","folderHint":"Test case will be created in the selected folder","testCreationMode":"Test Creation Mode","aiGenerate":"AI Generate","aiGenerateDescription":"AI automatically generates test cases","aiImport":"AI Import","aiImportDescription":"Import test cases via YAML upload","single":"Single","batch":"Batch","goalLabel":"Goal","goalOptional":"(optional)","goalPlaceholder":"Describe what you want to test. For example: 'Login to the application and verify the dashboard is displayed'. Or Leave empty to use the no-code editor...","goalHint":"With a goal, AI generates test steps automatically. Without a goal, use the agentic no-code editor to build steps.","testFlowYamlLabel":"Test Flow YAML","testFlowYamlRequired":"(required)","testFlowYamlHint":"Paste exported test case YAML. AI will import and structure the test flow automatically.","testFlowYamlPlaceholder":"Paste exported test case YAML. For example:\\n\\ngoal: Verify user can log in and see dashboard\\nurl: https://example.com\\nstatements:\\n - Navigate to https://example.com/login\\n - Enter \\"test@example.com\\" in the email field\\n - Enter \\"Password123!\\" in the password field\\n - Click the \\"Sign in\\" button\\n - VERIFY: Dashboard is visible\\n\\nOr paste a full exported YAML from an existing test case.","yamlRequired":"Please upload a valid YAML file with test cases","testFlowYamlContentRequired":"Test flow YAML is required","csvRequired":"Please upload a valid CSV file with test cases","modifyTest":"Modify Test","saveTestCase":"Save Test Case","createWithCopilot":"Create with Copilot","creating":"Creating...","creatingCount":"Creating {count} Test Cases...","createCount":"Create {count} Test Cases","createTestCases":"Create Test Cases","createTestCase":"Create Test Case","createNewTestCase":"Create New Test Case","failedToCreateTestCase":"Failed to create test case","retryParamsUnavailable":"Cannot retry: upload parameters not available","generatingTestCases":"Generating test cases...","generatingTestCasesSubText":"Please wait while we generate your test cases. You will be redirected to the test cases list when complete."},"createCodeForm":{"createNewTestCase":"Create New Test Case","agentMode":"Agent Mode","titleLabel":"Title","titlePlaceholder":"Enter test case title","testAccountLabel":"Test Account","setupTest":"Setup Test","teardownTest":"Teardown Test","saveTestCase":"Save Test Case"},"generalSettings":{"settingsTitle":"Settings","disableAutoLogin":"Disable Auto Login","disableAutoLoginTooltip":"When enabled, the test will not automatically log in using the selected environment.","autoDismissModal":"Auto Dismiss Modal","autoDismissModalTooltip":"When enabled, the test will automatically dismiss modals (like cookie consent) during self-healing.","autoFix":"Auto Fix","autoFixTooltip":"Override the organization default for this test case. When enabled, AI will automatically analyze and fix test failures.","autoFixDefault":"Default ({state})","autoFixOn":"On","autoFixOff":"Off","autoFixStateOn":"On","autoFixStateOff":"Off","targetDevice":"Target Device","browserLocale":"Browser Locale","browserLocaleTooltip":"Override the browser's language and timezone for this test. Leave blank to use the browser default.","language":"Language","languagePlaceholder":"Default (en-US)","timezone":"Timezone","timezonePlaceholder":"Default (America/Los_Angeles)","browserMedia":"Browser Media","browserMediaTooltip":"Enables fake camera/microphone + auto-accept media prompts for Chromium. Other browsers ignore these settings.","enableCamera":"Enable Camera","enableMicrophone":"Enable Microphone","fileIdNameNotLoaded":"FILE-{id} (name not loaded)","selectAudioFile":"Select audio file for microphone","audioFileHint":"Audio file from test data to use for fake microphone capture","selectAudioFileModalTitle":"Select Audio File for Microphone","noAudioFiles":"No audio files (.wav or .mp3) found in test data. Upload audio files to use them as microphone input.","browserExtension":"Browser Extension","browserExtensionTooltip":"Loads a Chrome extension from test data (.crx or .zip). Only supported in Chromium and headed mode.","enableExtension":"Enable Extension","selectExtensionFile":"Select extension file","extensionFileHint":"Extension package from test data (.crx or .zip)","selectExtensionFileModalTitle":"Select Extension File","noExtensionFiles":"No extension files (.crx or .zip) found in test data. Upload an extension package to use it.","extraHeaders":"Extra HTTP Headers","extraHeadersTooltip":"Add custom HTTP headers sent with every browser request (e.g., authorization tokens, feature flags). Headers are sent in plain text.","extraHeadersAddButton":"Add Header","extraHeadersNamePlaceholder":"Header name","extraHeadersValuePlaceholder":"Header value","extraHeadersColumnName":"Name","extraHeadersColumnValue":"Value","extraHeadersNameRequired":"Header name is required","extraHeadersNameInvalid":"Invalid header name — use letters, digits, hyphens, or underscores only","extraHeadersNameDuplicate":"Header name already exists","environmentConfigurations":"Environment Configurations"},"environmentSelection":{"environment":"Environment","overrideUrl":"Override URL (Optional)","overrideUrlDefaultPrefix":"Default: {url}","overrideUrlPlaceholder":"Enter custom URL","overrideTestAccount":"Override Test Account (Optional)","overrideTestAccountDescription":"By default, the test account configured for each test case's environment will be used","overrideVariables":"Override Variables (Optional)","overrideVariablesDescription":"Variables defined here will override environment variables for this run","accountsSelectedInfo":"{count} accounts selected. Each account will run separately, creating {count} test run{plural} per test case.","addVariable":"Add Variable","keyPlaceholder":"Key","valuePlaceholder":"Value","removeVariable":"Remove variable"},"environmentConfigsList":{"unknownEnvironment":"Unknown Environment","notConfigured":"Not configured","specificAccountsNoneSelected":"Specific accounts (none selected)","unknown":"Unknown","testEditorEnvironmentTooltip":"This environment is used as the default when editing the test steps.","testEditorEnvironment":"Test Editor Environment","setAsStepEditorEnv":"Set as Step Editor Env","startingUrl":"Starting URL","testAccount":"Test Account","hooks":"Hooks","addEnvironmentConfig":"Add Environment Config","allEnvironmentsConfigured":"All environments have been configured","editEnvironmentConfig":"Edit Environment Config","updateConfig":"Update Config","addConfig":"Add Config"},"explorer":{"loadingTestCases":"Loading test cases","loadingSubText":"This won't take long","emptyTitle":"Tests","emptyDescription1":"Tests are automated checks that validate how your product works, from login flows to complex user journeys.","emptyDescription2":"Each test is a sequence of actions and verifications, powered by AI or written step by step, so you can catch issues before users do.","createFirstTest":"Create your first test","documentation":"Documentation","newRootFolder":"New Root Folder","columnName":"Name","columnStatus":"Status","columnPlatform":"Platform","columnLatestResult":"Latest Result","columnCreatedBy":"Created By","filterStatus":"Status","filterLabels":"Labels","filterCreatedBy":"Created By","filterDevice":"Device","filterEnvironment":"Environment","filterTestAccount":"Test Account","filterTestAccountDescription":"Shows test cases where at least one environment config includes the selected test account.","filterLatestResult":"Latest Result","filterHasAutoFix":"Auto Fix","filterOptionActive":"Active","filterOptionDraft":"Draft","filterOptionPassed":"Passed","filterOptionFailed":"Failed","filterOptionNotStarted":"Not Started","filterOptionHasAutoFix":"Has Auto Fix","filterActive":"Filter Active","filterAutoFix":"Filter Auto Fix","filterDraft":"Filter Draft","filterFailed":"Filter Failed","filterNotStarted":"Filter Not Started","filterPassed":"Filter Passed"},"filterBar":{"statusDisplay":"Status","labelsDisplay":"Labels","statusMore":"{first} + {count} more","labelMore":"{first} + {count} more","devicesPlaceholder":"Devices","clearAllFilters":"Clear all filters","clearShort":"Clear","filterActive":"Filter Active","filterDraft":"Filter Draft"},"liveView":{"liveViewTab":"Live View","videoTab":"Video","previewsTab":"Previews","previewsWithCount":"Previews ({count})","deviceTooltip":"Device: {name}","reload":"Reload","reloading":"Reloading...","exitFullScreen":"Exit full screen","fullScreen":"Full screen","liveViewNotAvailable":"Live View Not Available","liveViewNotAvailableDesc":"Live test preview is not available in Code mode. Switch to Agent mode in Settings to use this feature.","testLiveView":"Test Live View","waitingForGeneration":"Waiting for generation to start...","initializingDebug":"Initializing debug session...","clickToStart":"Click the \\"Start\\" or \\"Run\\" button in the left panel to start the browser and see automation in real-time.","noVideoRecording":"No video recording available","generationScreenshot":"Generation screenshot","waitingForScreenshot":"Waiting for generation screenshot...","livePreviewTitle":"Live Preview Title"},"userSelection":{"noneOption":"None","anyOption":"Any","unknownAccount":"Unknown account","selectedAccounts":"{count} selected accounts","searchPlaceholder":"Search accounts...","createdLabel":"Created: {date}"},"viewRecordingModal":{"title":"Test Recording: {title}","noRecordingAvailable":"No recording available for this test case","failedToLoad":"Failed to load recording","noVideoRecording":"No video recording available","browserNotSupported":"Your browser does not support the video tag."},"simpleList":{"searchPlaceholder":"Search test cases...","columnId":"ID","columnName":"Name","columnUpdated":"Updated"},"sidebar":{"testCaseInfo":"Test Case Info","createdAt":"Created At","lastUpdated":"Last Updated","createdBy":"Created By","updatedBy":"Updated By","targetDevice":"Target Device","actions":"Actions","extractKnowledge":"Extract Knowledge","extractingKnowledge":"Extracting Knowledge...","knowledgeExtractedMessage":"Knowledge has been successfully extracted from this test case","failedToExtractKnowledge":"Failed to extract knowledge","failedToExtractKnowledgeFromTestCase":"Failed to extract knowledge from test case","notAvailable":"N/A"},"statementChanges":{"added":"Added ({count})","deleted":"Deleted ({count})","modified":"Modified ({count})","moved":"Moved ({count})"},"assertions":{"placeholder":"Enter assertion description...","emptyText":"Click to add assertion"},"basicAction":{"placeholder":"Enter action description...","emptyText":"Click to add description","findElement":"Find element"},"infoView":{"variablesTab":"Variables","consoleTab":"Console","noVariables":"No variables available. Start running your test to see variables here.","noConsoleOutput":"No console output available. Console logs will appear here during test execution.","clickToExpand":"Click to expand","dragToResize":"Drag to resize"},"resultPopup":{"latestRunResult":"Latest Run Result","status":"Status:","started":"Started:","ended":"Ended:","duration":"Duration:","environment":"Environment:","summary":"Summary:","notStarted":"Not Started","passedWithAutofix":"Passed with autofix"},"testDataSelector":{"selectTestData":"Select Test Data","needToUpload":"Need to upload test data files?","goToSettings":"Go to Settings → Test Data","selectTestDataModalTitle":"Select Test Data","confirmUploadTitle":"Confirm Upload Test Data","confirmUploadDesc":"Upload file {filename} and attach to the test.","done":"Done","cancel":"Cancel","confirm":"Confirm"},"testDataSelectionList":{"searchPlaceholder":"Search test data file name...","columnId":"ID","columnName":"Name","columnLastUpdated":"Last Updated","done":"Done"},"templateSelector":{"placeholder":"Select a template"},"simpleExplorer":{"searchPlaceholder":"Search test cases...","loadingTestCases":"Loading test cases...","selectedCount":"{count} selected","columnName":"Name","columnStatus":"Status","columnCreatedBy":"Created By"},"layout":{"overviewTab":"Overview","settingsTab":"Settings","historyTab":"History","codeTab":"Code","playgroundTab":"UX Playground","autofixAvailable":"An autofix is available for this test case.","viewResult":"View result","closeDetails":"Close details"},"diffViewer":{"modalTitle":"Test Flow Changes"},"flowEditor":{"teardownTitle":"Teardown","removeTeardown":"Remove","addTeardown":"Add Teardown"},"plansSection":{"schedulesTitle":"Schedules","noSchedulesLinked":"No schedules linked","viaSuiteBadge":"Via Suite"},"suitesSection":{"testSuitesTitle":"Test Suites","noTestSuitesLinked":"No test suites linked"},"csvSection":{"uploadCsvFile":"Upload CSV File","downloadTemplate":"Download Template","selectCsvFile":"Select CSV file","csvFormatTitle":"CSV Format Requirements","formatDescription":"Your CSV file must contain \\"title\\" and \\"goal\\" columns. The goal column should contain a description of what you want to test. AI will automatically generate test steps based on each goal. Click \\"Download Template\\" above to get a sample file with the correct format.","exampleFormat":"Example format (use quotes for fields containing commas or newlines):","exampleCsv":"title,goal\\nLogin Test,\\"Test login with valid credentials\\"\\nCheckout Test,\\"Test checkout process with multiple items\\"","tipCommasAndNewlines":"Tip: Handling commas and newlines: Wrap fields containing commas or newlines in double quotes","tipIncludingQuotes":"Tip: Including quotes: Use double quotes (\\"\\") to include actual quotes in text","tipGoalFormat":"Tip: Goal format: Provide a clear description of what you want to test (e.g., \\"Test login functionality\\" or \\"Verify checkout process\\")","parsingCsv":"Parsing CSV file...","previewCount":"Preview ({count} test case{plural})","columnTitle":"Title","columnGoal":"Goal","columnTestFlow":"Test Flow","errors":{"fileTooLarge":"File size too large. Please upload a file smaller than 5MB","emptyFile":"CSV file is empty. Please upload a file with test case data","missingHeaderOrData":"CSV file must contain at least a header row and one data row. Please check your file format","missingRequiredColumns":"CSV file must contain \\"title\\" and \\"goal\\" columns. Found columns: {columns}","rowMissingRequiredColumns":"Row {row}: Missing required columns (expected at least {minColumns} columns)","rowMissingTitle":"Row {row}: Missing title","rowMissingGoal":"Row {row}: Missing goal","rowTitleTooLong":"Row {row}: Title too long (max 200 characters)","rowGoalTooLong":"Row {row}: Goal too long (max 2000 characters)","noValidRowsWithDetails":"No valid test cases found. Errors:\\n{errors}{more}","noValidRows":"No valid test cases found in CSV file. Please check your file format","tooManyRows":"Too many test cases. Please limit to 100 test cases per upload","parseFailed":"Failed to parse CSV file. Please check the file format and try again","readFailed":"Failed to read CSV file. Please try again or use a different file","invalidExtension":"Please upload a CSV file"}},"yamlSection":{"uploadYamlFile":"Upload YAML File","downloadTemplate":"Download Template","selectYamlFile":"Select YAML file (.yaml or .yml)","yamlFormatTitle":"YAML Format Requirements","parsingYaml":"Parsing YAML file...","previewCount":"Preview ({count} test case{plural})","columnTitle":"Title","columnGoal":"Goal"},"screencast":{"connecting":"Connecting to screencast...","failedToConnect":"Failed to connect to screencast","disconnected":"Screencast disconnected","browserScreencast":"Browser Screencast"},"multiPageViewer":{"noPagesOpen":"No pages open","connectingToBrowser":"Connecting to browser...","closeInspector":"Close Inspector","openInspector":"Open Inspector","pickingLocator":"Picking locator...","cancelLocatorPicking":"Cancel locator picking","failedToConstructUrl":"Failed to construct DevTools URL","recording":"Recording","record":"Record","clickToStopRecording":"Click to Stop Recording","clickToStartRecording":"Click to Start Recording","picking":"Picking","pick":"Pick","clickToStopPicking":"Click to Stop Picking Element","clickToStartPicking":"Click to Start Picking Element"},"agentFixDiffViewer":{"diffSummaryTitle":"Diff Summary","originalTestFlow":"Original Test Flow","agentFixedTestFlow":"Agent-Fixed Test Flow","changedCount":"{count} changed","statementsCount":"{count} statements","changeLabel":"Change","noChanges":"No changes","noStatements":"No statements to display","changeDetails":"Change Details","deletedInModified":"Deleted in modified","addedInModified":"Added in modified"},"videoPreview":{"creatingTestCase":"Creating Test Case","recordingWillAppearSoon":"Test recording will appear here shortly","testRecordingPreview":"Test Recording Preview","recordingWillAppear":"Test recording will appear here","browserNotSupported":"Your browser does not support the video tag."},"imageViewer":{"noImagesAvailable":"No Images Available","noImagesDesc":"Images will appear here when available from test execution or debugging."},"actionGenerationDebugView":{"tabSystemPrompt":"System Prompt","tabUserPrompt":"User Prompt","tabReasoningContent":"Reasoning Content","tabRawResponse":"Raw Response","tabKnowledge":"Knowledge ({count})","tabCuaInput":"CUA Input","tabCuaResponse":"CUA Response"},"labels":{"labelsTitle":"Labels"},"csvImportProgress":{"backgroundInfo":"You can close this window at any time. The import process will continue in the background.","columnTitle":"Title","columnStatus":"Status","statusPending":"Pending","statusCreating":"Creating","statusGenerating":"Generating","statusCompleted":"Completed","statusError":"Error","goToTestCases":"Go To Test Cases"},"historyViewer":{"title":"Test Flow History Version","updatedAt":"{name} updated at {timeAgo}"},"generationView":{"queued":"Queued","regenerating":"({count})Regenerating a better test","generating":"Generating"}}`);
|
|
198310
|
+
const TestCases = /* @__PURE__ */ JSON.parse(`{"cannotUpdateSystemViews":"Cannot update system views","viewUpdatedSuccessfully":"View updated successfully","failedToUpdateView":"Failed to update view","generateAiTitle":"Generate AI Title","revertToOriginalTitle":"Revert to Original Title","runInCloud":"Run in Cloud","hideDetails":"Hide details","showDetails":"Show details","testMustBeActiveToRunInCloud":"Test must be Active to run in cloud","cannotRunTest":"Cannot Run Test","testCaseMustBeActiveToRun":"Test case must be Active to run","failedToLoadTestCaseDetails":"Failed to load test case details","failedToUpdateTestCaseStatus":"Failed to update test case status","testCaseDuplicatedSuccessfully":"Test case duplicated successfully","failedToDuplicateTestCase":"Failed to duplicate test case","testCaseStatusUpdated":"Test case status updated","runTest":"Run Test","testCaseMustBeActive":"Test Case must be Active to run","viewRecording":"View Recording","noRecordingAvailable":"No Recording Available","deleteTestCaseTitle":"Delete test case?","deleteTestCaseInUse":"This test case is used as a dependency for other tests. Please remove the dependency first.","deleteTestCaseConfirm":"Are you sure you want to delete","deleteTestCaseUndone":"This action cannot be undone.","setupBadgeLabel":"Setup","setupBadgeTooltip":"This test is used as a setup test for other tests","teardownBadgeLabel":"Teardown","teardownBadgeTooltip":"This test is used as a teardown test for other tests","loadingTestCaseDetails":"Loading test case details","deleteSelected":"Delete Selected","deleteTestCasesTitle":"Delete test cases?","deleteTestCasesInUse":"Some test cases are used as dependencies for other tests. Please remove these dependencies first.","theseTestCases":"These test cases","thisTestCase":"This test case","statusLabel":"Status","labelsLabel":"Labels","failedToUpdateTestCaseLabel":"Failed to update test case label","detailPage":{"failedToLoadTestCase":"Failed to load test case","testCaseNotFound":"Test case not found","returnToTestCases":"Return to Test Cases","retry":"Retry"},"runTestModal":{"titleSingle":"Run Test in Cloud","titleMultiple":"Run {count} Test Case(s) in Cloud","titleSuite":"Run Test Suite in Cloud","titleSchedule":"Run Schedule in Cloud","runButton":"Run Test","runMultipleButton":"Run {count} Test(s)","envDescription":"Only environments configured for this test case are shown","envMultiDescription":"Test cases will run using the selected environment. Test cases that don't support this environment will be skipped."},"failedToLoadTestAccounts":"Failed to load test accounts","fixAcceptedTitle":"Fix accepted","fixAcceptedMessage":"The AI fix has been applied to the test case.","fixRejectedTitle":"Fix rejected","fixRejectedMessage":"The AI fix has been rejected and will not be used in future runs.","testFlowReverted":"Test flow reverted to this version","environmentRequired":"Environment is required","environmentSetAsStepEditorEnv":"Environment set as step editor env successfully","deleteEnvironmentConfigTitle":"Delete Environment Config?","environmentConfigDeletedSuccessfully":"Environment config deleted successfully","knowledgeExtractedTitle":"Knowledge Extracted","extractionFailedTitle":"Extraction Failed","saveBLockedTitle":"Save Blocked","saveBlockedNestedTemplates":"Templates cannot contain nested templates. Remove nested template references before saving.","templateInsertedTitle":"Template Inserted","templateInsertedMessage":"Template content inserted as a normal group. Nested templates are not allowed, so the content has been copied instead of referenced.","sessionTimedOutTitle":"Session timed out","sessionTimedOutMessage":"Your session was reset due to inactivity. Start debug again to continue.","testFlowUnsavedChangesTitle":"Test flow has unsaved changes","testFlowUnsavedChangesMessage":"Current test flow has unsaved changes. Please save first, or leave this page and discard the changes.","continueEditing":"Continue Editing","discardAndLeave":"Discard And Leave","failedToLoadTestAccountsNotification":"Failed to load test accounts","loadingTestCaseDetailsState":"Loading test case details...","generatingTestCase":"Generating Test Case","stop":"Stop","generatingDescription":"This might take a few minutes. You can stop the process at any time.","agentCouldNotComplete":"Agent could not complete the task","dismissWarning":"Dismiss warning","nativeTestWarning":"Native app tests (Android/iOS) can only be edited and debugged in the desktop app.","convertingTestFormat":"Converting test format...","selectPlaceholder":"Select {title}","viewTestCaseTooltip":"View test case: {title}","summaryTitle":"Summary","generateAiSummary":"Generate AI Summary","resetToOriginalSummary":"Reset to original summary","saving":"Saving...","clickToAddSummary":"Click to add a test summary...","labelsTitle":"Labels","addLabel":"Add label","testSuitesTitle":"Test Suites","addToTestSuite":"Add to test suite","statusGenerating":"AI agent is generating your test case","statusQueued":"Test case is queued for generation","statusGeneratingLabel":"Generating","statusQueuedLabel":"Queued","changeStatus":"Change Status","searchTestCases":"Search test cases...","columnId":"ID","columnName":"Name","columnStatus":"Status","setupTeardownMenu":{"selectTitle":"Select {title}"},"parameterSets":{"description":"Named variable sets. Each enabled set produces an independent result row when the test is run in this schedule.","columnLabel":"Label","columnVariables":"Variables","columnEnabled":"Enabled","defaultLabel":"Default","testCaseVariablesLabel":"test case variables","addParameterSet":"Add Parameter Set","editParameterSet":"Edit Parameter Set","editDefaultVariables":"Edit Default Variables","deleteParameterSet":"Delete Parameter Set","labelField":"Label","labelPlaceholder":"e.g. Admin, Guest User","labelAlreadyExists":"A parameter set with this label already exists.","deleteConfirm":"Are you sure you want to delete this parameter set? This cannot be undone.","editDefaultDescription":"These are the test case's own variables. Changes here update the test case settings and apply to all schedules that don't override them with a custom parameter set.","add":"Add","update":"Update"},"variables":{"title":"Variables","description":"Variables scoped to this test case. They override environment and global variables with the same name.","columnName":"Name","columnValue":"Value","addVariable":"Add Variable","namePlaceholder":"name","valuePlaceholder":"value","nameRequired":"Required","nameAlreadyExists":"Already exists","sensitiveMasked":"Sensitive: value is masked in the UI and logs","markSensitive":"Mark as sensitive to mask the value in the UI and logs"},"debuggerWarnings":{"heading":"Statements have been modified during debugging","body":"Changes made during debugging session may not reflect actual execution behavior. Consider restarting the debugging session to ensure consistency."},"debuggerButtonBar":{"undoRevert":"Undo revert","revertChanges":"Revert changes","undo":"Undo","revert":"Revert","saveChanges":"Save all changes to statements","noChanges":"No changes to save","save":"Save","saved":"Saved","disabledDuringGeneration":"Disabled during test generation","startWithOverride":"Initialize debugging session with URL override: {url} (Ctrl + R)","startDebugging":"Initialize debugging session and execute first statement (Ctrl + R)","noMoreStatements":"No more statements to execute","executeNext":"Execute the next statement in sequence (Ctrl + R)","urlOverrideTooltip":"URL override: {url}","setUrlOverride":"Set URL override","urlOverrideSection":"URL Override","urlOverridePlaceholder":"https://example.com/path","waitingForStep":"Waiting for current step to complete...","pauseExecution":"Pause execution after current step","executeAll":"Execute all remaining statements","pause":"Pause","run":"Run","resetSession":"Reset session","reset":"Reset","start":"Start","step":"Step"},"statementBadge":{"unsavedChanges":"Unsaved changes"},"ifElseStatement":{"then":"Then","else":"Else","expandThen":"Expand then branch","collapseThen":"Collapse then branch","expandElse":"Expand else branch","collapseElse":"Collapse else branch","clearThenBranch":"Clear Then Branch","clearThenTooltip":"Remove all statements from the THEN branch. The ELSE branch (if present) will not be affected. This action cannot be undone.","addElseBranch":"Add else branch","removeElseBranch":"Remove else branch","aiCondition":"AI Condition: Natural language evaluation","jsCondition":"JS Condition: JavaScript expression","ifElseActions":"If/Else Actions","clickToAddCondition":"Click to add condition","disabled":"Disabled","conditionPlaceholder":"Enter condition expression...","clearThenItem1":"Remove all statements from the THEN branch.","clearThenItem2":"The ELSE branch (if present) will not be affected.","clearThenItem3":"This action cannot be undone."},"whileLoopStatement":{"loopBody":"Loop Body","expandLoop":"Expand loop body","collapseLoop":"Collapse loop body","secondsMax":"seconds max","clearLoopBody":"Clear Loop Body","clearLoopTooltip":"Remove all statements from the loop body. The loop condition will remain unchanged. This action cannot be undone.","aiCondition":"AI Condition: Natural language evaluation","jsCondition":"JS Condition: JavaScript expression","loopActions":"Loop Actions","clickToAddCondition":"Click to add condition","disabled":"Disabled","conditionPlaceholder":"Enter loop condition...","clearBodyItem1":"Remove all statements from the loop body.","clearBodyItem2":"The loop condition will remain unchanged.","clearBodyItem3":"This action cannot be undone."},"floatingAddButton":{"addNewStep":"Add a new step"},"saveTemplate":{"title":"Save as Template","nameLabel":"Name","namePlaceholder":"e.g., user-registration, checkout-flow","nameDescription":"Give this template a unique name for easy identification","nameRequired":"Name is required","nameExists":"Name \\"{name}\\" already exists","description":"Description","nameAlreadyExists":"Name Already Exists"},"selectTemplate":{"title":"Select Template","searchPlaceholder":"Search templates...","noMatch":"No templates match your search","noTemplates":"No templates available","columnName":"Name","columnDescription":"Description","copyTooltip":"Insert as independent copy. Changes to the template won't affect this group.","linkTooltip":"Link to template. This group will stay in sync with the template.","linkDisabledTooltip":"Templates can't link other templates. Use Copy instead.","copy":"Copy","link":"Link","copyButton":"Copy Button","linkButton":"Link Button","noTemplatesAvailable":"No Templates Available","noTemplatesMatchSearch":"No Templates Match Search"},"statementList":{"noStatements":"No statements","noStatementsReadOnly":"No statements (read-only)"},"suiteSectionDivider":{"skipped":" (skipped)","skippedSuffix":"Skipped Suffix"},"codeEditor":{"cancelTooltip":"Cancel (Esc)","confirmTooltip":"Confirm code (Ctrl+Enter)","hint":"Press Ctrl+Enter to confirm, Esc to cancel","unsavedChanges":"• Unsaved changes","clickToOpen":"Click to open code editor"},"actionEntityEditor":{"cancelTooltip":"Cancel (Esc)","confirmTooltip":"Confirm changes (Ctrl+Enter)","hint":"Press Ctrl+Enter to confirm, Esc to cancel","shortcutHint":"{modifier}+↵ save · esc cancel","unsavedChanges":"• Unsaved changes","missingActionName":"Missing action name","invalidYaml":"Invalid YAML","viewTitle":"View action entity","editTitle":"Click to edit action entity"},"extractContentEditor":{"configurePrompt":"Click to configure variable extraction...","extractAndSave":"Extract <elem>{element}</elem> and save to <var>{variable}</var>","clickToEdit":"Click to edit","clickToConfigure":"Click to configure","configurePlaceholder":"Configure Placeholder","extractDisplayText":"Extract Display Text"},"extractContentModal":{"title":"Extract Content Configuration","whatToExtract":"What to extract","extractPlaceholder":"e.g., order number, user name, price from the table...","extractDescription":"Describe the page element or content you want to extract","variableName":"Variable name","variablePlaceholder":"e.g., orderNumber, userName, tablePrice","variableDescription":"Name of the variable to store the extracted value","extractContent":"Extract Content"},"extractEmailContentEditor":{"noConfigured":"No email content extraction configured","configurePrompt":"Click to configure email content extraction...","variableTooltip":"The variable name will be used to store the extracted content.","variableLabel":"Variable: {name}","clickToConfigure":"Click To Configure","clickToEdit":"Click To Edit","configurePlaceholder":"Configure Placeholder","noConfig":"No Config"},"extractEmailContentModal":{"title":"Email Content Extraction Configuration","selectConfig":"Select configuration","selectConfigPlaceholder":"Select a saved configuration","forwardEmail":"Forward Email","extractionType":"Extraction Type","extractionTypePlaceholder":"Select extraction type","extractionTypeDescription":"The type of content to extract from emails","prompt":"Prompt","promptPlaceholder":"Enter custom prompt for extraction (optional)","promptDescription":"Optional: Custom prompt to guide the extraction process","filterFromEmail":"Filter From Email","filterFromPlaceholder":"Enter email address to filter by sender","filterFromDescription":"Required: Email address to filter emails by sender","filterToEmail":"Filter To Email","filterToPlaceholder":"Enter email address to filter by recipient (optional)","filterToDescription":"Optional: Email address to filter emails by recipient","filterSubject":"Filter Subject","filterSubjectPlaceholder":"Enter subject text to filter by (optional)","filterSubjectDescription":"Optional: Text that must be contained in the email subject","filterBodyContains":"Filter Body Contains","filterBodyPlaceholder":"Enter text that must be in email body (optional)","filterBodyDescription":"Optional: Text that must be contained in the email body","extractionTypeRequired":"Extraction type is required","filterFromEmailRequired":"Filter from email is required"},"fileUploadEditor":{"uploadFile":"Upload file","uploadFiles":"Upload {count} files","noFilesSelected":"No files selected","selectFiles":"Select files to upload","clickToChange":"Click to change files","uploadText":"Upload Text"},"fileUploadModal":{"title":"Select Test Data Files","targetLabel":"(Optional) Upload Target Description","targetSublabel":"(when there are multiple on the page)","targetPlaceholder":"Target description (optional, e.g., 'profile picture upload')","searchPlaceholder":"Search files by name...","loadError":"Failed to load test data files","noFilesMatch":"No files match your search","noFilesAvailable":"No test data files available. Upload files in the Test Data section to use them here.","clearTarget":"Clear target description","selectFile":"Select File","selectFiles":"Select {count} Files"},"functionEditor":{"noParameters":"No parameters","configuredViaModal":"Functions are configured via modal dialog"},"loginEditor":{"configurePrompt":"Click to configure login credentials...","clickToEdit":"Click to edit login configuration","clickToConfigure":"Click to configure login","configurePlaceholder":"Configure Placeholder"},"loginModal":{"title":"Login Configuration","environment":"Environment","environmentPlaceholder":"Select environment (optional)","environmentDescription":"Optional: Environment to login to. If not specified, the session's default environment will be used.","testAccount":"Test Account","selectTestAccount":"Select test account","noAccountsForEnv":"No test accounts available for this environment","noGlobalAccounts":"No global test accounts available","testAccountRequired":"Test Account ID is required","selectAccountDescription":"Select the test account to use for login","createdPrefix":"Created:","idPrefix":"ID:","saveConfiguration":"Save Configuration"},"waitUntilEditor":{"conditionPlaceholder":"Condition: e.g., The loading spinner disappears","clickToAdd":"Click to add wait condition","secondsMaxWait":"seconds max wait"},"jsonViewer":{"base64ImageLabel":"[Base64 Image - Click to view]","imagePreview":"Image Preview","base64ImageAlt":"Base64 image preview","imageAlt":"Image preview","imagePreviewAlt":"Image Preview Alt","previewTitle":"Preview Title"},"codeTab":{"description":"This code is dynamically generated from the test flow. Edit steps in the Steps tab to modify the test.","error":"Error: {error}","readOnlyPreview":"Read-only preview"},"settingsTab":{"loadingDetails":"Loading test case details...","failedToLoadAccounts":"Failed to load test accounts"},"actionStatement":{"showHideDetails":"Show/Hide details","showDebugInfo":"Show debug info","removeLocator":"Remove locator","debugInfoTitle":"Action Generation Debug Info","picking":"Picking...","pickLocator":"Pick Locator","aiAssertion":"AI Assertion: Natural language verification","jsAssertion":"JS Assertion: Playwright expect expression","aiGroup":"AI Group: Natural language description","groupContainer":"Group Container: Contains nested statements","aiAction":"AI Action: Auto-adapts to page changes","regularAction":"Uses cached element selectors","pureVision":"Pure Vision: Uses only visual analysis","hybridMode":"Hybrid Mode: Uses DOM + visual analysis"},"actionEditor":{"selectActionType":"Select an action type from the dropdown above...","enterAssertion":"Enter assertion description...","functionModal":"Function will be configured via modal...","loginModal":"Login credentials will be configured via modal...","emailModal":"Email extraction will be configured via modal...","waitCondition":"Wait condition will be configured below...","enterAction":"Enter action description...","clickToAdd":"Click to add description"},"newStepEditor":{"loadingDetails":"Loading test case details...","agentCouldNotComplete":"Agent Could Not Complete","convertingFormat":"Converting Format","dismissWarning":"Dismiss Warning"},"actionWithSwitch":{"aiAction":"AI Action","action":"Action","switchToRegular":"Switch to regular action","switchToAi":"Switch to AI action"},"debugStatusIcon":{"skipped":"Skipped","streaming":"Streaming...","executing":"Executing...","executionSuccessful":"Execution successful","executionFailed":"Execution failed","nextStatement":"Next statement to be executed","convertedToAi":"Statement was converted to AI mode for successful execution"},"conditionInput":{"placeholder":"Enter condition expression...","disabled":"Disabled","clickToAddCondition":"Click to add condition"},"environmentConfigForm":{"testAccount":"Test Account","setAsDefault":"Set as default environment for Test Editor","setAsDefaultDescription":"This environment will be used as the default when editing the test steps.","hooksDescription":"Templates that run before/after test execution"},"latestRun":{"notAvailable":"N/A","invalidDate":"Invalid date","seconds":"{totalSeconds} seconds","pending":"Pending","latestResult":"Latest Result","viewRunDetails":"View run details (#{id})","result":"Result","startTime":"Start Time","endTime":"End Time","duration":"Duration","environment":"Environment","default":"Default"},"resizableEditor":{"editor":"Editor","preview":"Preview","clickToExpand":"Click to expand","clickToCollapse":"Click to collapse","dragToResize":"Drag to resize"},"statementWrapper":{"skipped":"Skipped","failed":"Failed","passed":"Passed","addedByAiFix":" · Added by AI fix","modifiedByAiFix":" · Modified by AI fix","movedByAiFix":" · Moved by AI fix","autoHealed":" · Auto healed","showingHealed":"Showing healed action step. Click to switch back to original.","showingOriginal":"Showing original action step. Click to switch to healed.","added":"Added","original":"Original","modified":"Modified","moved":"Moved","draggingDisabled":"Dragging disabled during debugging","dragToReorder":"Drag to reorder","rollbackToStatement":"Rollback to this statement","skipToStatement":"Skip to this statement","executeStatement":"Execute this statement","executeUntilStatement":"Execute until this statement.","executeThisStepDescription":"Executes this step.","executeThisStepItem1":"This will execute the step itself.","executeThisStepItem2":"Use this to quickly test a specific part of the test flow.","runUntilThisStep":"Run Until This Step","runUntilThisStepDescription":"Runs the test flow until this step is executed.","runUntilThisStepItem1":"This will not execute the step itself.","runUntilThisStepItem2":"Use this to quickly test a specific part of the test flow.","currentStatement":"This is the current statement.","editStatement":"Edit Statement","duplicate":"Duplicate","delete":"Delete","actionsLabel":"Actions","draft":"Draft","action":"Action","assertion":"Assertion","code":"Code","function":"Function","uploadFile":"Upload file","extract":"Extract","waitUntil":"Wait Until","group":"Group","template":"Template","extractEmailContent":"Extract Email Content","controlFlows":"Control Flows","ifElse":"If/Else","loop":"Loop","draftTooltip":"A Draft is a flexible statement that converts to Action or Group after execution. Use this when you're not sure if your instruction will need one or multiple steps. After execution, it automatically becomes an Action (single step) or Group (multiple steps) based on what the AI produces. (Ctrl+Alt+B)","draftInstruction1":"A Draft is a flexible statement that converts after execution.","draftInstruction2":"If the AI produces one action, it becomes an Action.","draftInstruction3":"If the AI produces multiple actions, it becomes a Group.","draftInstruction4":"Use this when you're not sure how many steps your instruction will need.","actionTooltip":"An Action performs interactions with the page using natural language descriptions. Examples: \\"Click the submit button\\", \\"Fill in the email field with user@example.com\\", \\"Select California from the state dropdown\\". The AI agent interprets your description and executes the appropriate browser action. (Ctrl+Alt+A)","actionInstruction1":"An Action performs interactions with the page using natural language descriptions.","actionInstruction2":"The AI agent interprets your description and executes the appropriate browser action.","actionInstruction3":"Examples: \\"Click the first search result\\", \\"Scroll to the reviews section\\", \\"Wait for the page to load\\"","assertionTooltip":"An Assertion verifies that something on the page matches your expectations. Examples: \\"The page title should contain Welcome\\", \\"The error message should be visible\\", \\"The cart total should be $99.99\\". Tests will fail if assertions are not met. (Ctrl+Alt+T)","assertionInstruction1":"An Assertion verifies that something on the page matches your expectations.","assertionInstruction2":"Tests will fail if assertions are not met.","assertionInstruction3":"Examples: \\"The page title should contain Welcome\\", \\"The error message should be visible\\", \\"The cart total should be $99.99\\"","editInstruction1":"Edit this statement's configuration, description, or parameters.","editInstruction2":"For actions and assertions, you can modify the natural language description.","editInstruction3":"For code blocks, edit the JavaScript directly.","duplicateTooltip":"Duplicate this statement and all its contents. Useful for creating similar actions with minor variations or repeating patterns. The copy will be inserted immediately after this statement.","duplicateInstruction1":"Duplicate this statement and all its contents.","duplicateInstruction2":"Useful for creating similar actions with minor variations or repeating patterns.","duplicateInstruction3":"The copy will be inserted immediately after this statement.","deleteTooltip":"Delete this statement permanently. For containers like Steps or If/Else blocks, this will also delete all nested statements. Use Ctrl+Alt+D for quick deletion. (Ctrl+Alt+D)","deleteInstruction1":"Permanently removes this statement from the test case.","deleteInstruction2":"For containers like Steps or If/Else blocks, this will also delete all nested statements.","deleteInstruction3":"Use Ctrl+Alt+D for quick deletion.","codeTooltip":"Code blocks execute custom JavaScript directly in the browser context. Use for complex logic, data manipulation, or operations not easily expressed in natural language. Examples: calculating values, parsing JSON, setting cookies, or interacting with browser APIs. Code has access to the page object and all Playwright APIs. (Ctrl+Alt+C)","codeInstruction1":"Code blocks execute custom JavaScript directly in the browser context.","codeInstruction2":"Use for complex logic, data manipulation, or operations not easily expressed in natural language.","codeInstruction3":"The code has access to the page object and can use await for async operations.","codeInstruction4":"Examples: Calculate values, parse JSON, set cookies, or interact with browser APIs.","functionTooltip":"Functions are reusable test components that accept parameters. Use them to avoid duplicating common sequences like login flows, form submissions, or navigation patterns. Example: A \\"Login\\" function with username and password parameters can be reused across multiple tests. (Ctrl+Alt+F)","functionInstruction1":"Functions are reusable test components that accept parameters.","functionInstruction2":"Use them to avoid duplicating common sequences like login flows, form submissions, or navigation patterns.","functionInstruction3":"Examples: A \\"Login\\" function with username and password parameters can be reused across multiple tests.","uploadFileTooltip":"Upload File actions attach files from your Test Data library to file input elements on the page. First upload files in the Test Data section, then select them here. Useful for testing file uploads, document processing, or image submissions. The action automatically handles file input elements and drag-and-drop zones. (Ctrl+Alt+U)","uploadFileInstruction1":"Upload File actions attach files from your Test Data library to file input elements on the page.","uploadFileInstruction2":"First upload files in the Test Data section, then select them here.","uploadFileInstruction3":"Useful for testing file uploads, document processing, or image submissions.","uploadFileInstruction4":"The action automatically handles file input elements and drag-and-drop zones.","extractTooltip":"Extract actions capture content from the page and save it to variables for later use. Examples: \\"Extract the order confirmation number and save to orderNumber\\", \\"Extract the user ID from the profile page and save to userId\\". These variables can be referenced in subsequent actions using $variableName syntax. (Ctrl+Alt+E)","extractInstruction1":"Extract actions capture content from the page and save it to variables for later use.","extractInstruction2":"These variables can be referenced in subsequent actions using $variableName syntax.","extractInstruction3":"Examples: \\"Extract the order confirmation number and save to orderNumber\\", \\"Extract the user ID from the profile page and save to userId\\".","waitUntilTooltip":"Wait for a specific condition to be met before continuing. Use natural language to describe what to wait for, like \\"The loading spinner disappears\\" or \\"The success message appears\\". Set a maximum timeout to prevent tests from hanging. (Ctrl+Alt+W)","waitUntilInstruction1":"Wait for a specific condition to be met before continuing.","waitUntilInstruction2":"Use natural language to describe what to wait for.","waitUntilInstruction3":"Examples: \\"The loading spinner disappears\\", \\"The success message appears\\".","waitUntilInstruction4":"Set a maximum timeout to prevent tests from hanging.","groupTooltip":"Groups are logical containers that organize related actions together. Use them to structure your test into meaningful sections like \\"User Registration\\", \\"Checkout Process\\", or \\"Search and Filter\\". Groups can be collapsed/expanded and help with test readability and maintenance. (Ctrl+Alt+G)","groupInstruction1":"Groups are logical containers that organize related actions together.","groupInstruction2":"Use them to structure your test into meaningful sections like \\"User Registration\\", \\"Checkout Process\\", or \\"Search and Filter\\".","groupInstruction3":"Groups can be collapsed/expanded and help with test readability and maintenance.","templateTooltip":"Templates are pre-defined step groups. Convert this statement to a template reference, then select a template to auto-populate common test patterns like login, navigation, or form submission. (Ctrl+Alt+R)","templateInstruction1":"Templates reference pre-defined step groups for common test patterns.","templateInstruction2":"After conversion, select a template to auto-populate actions.","templateInstruction3":"Examples: login flow, navigation, form submission, data verification.","templateInstruction4":"Helps maintain consistency across tests and reduces duplication.","extractEmailContentTooltip":"Extract specific content from emails like verification codes, activation links, or custom data. Configure filters to target emails from specific senders, with specific subjects, or containing certain text. The extracted content is automatically saved as a variable for use in subsequent test steps.","extractEmailContentInstruction1":"Extract specific content from emails like verification codes or activation links.","extractEmailContentInstruction2":"Configure filters to target emails from specific senders or with specific subjects.","extractEmailContentInstruction3":"Set custom prompts to guide the extraction process.","extractEmailContentInstruction4":"Extracted content is automatically saved as a variable for use in subsequent steps.","ifElseTooltip":"If/Else statements execute different actions based on conditions. The condition can be JavaScript code or natural language. Example: \\"If the user is logged in\\" then perform checkout actions, else show login form. Useful for handling different states, A/B tests, or dynamic content. (Ctrl+Alt+I)","ifElseInstruction1":"If/Else statements execute different actions based on conditions.","ifElseInstruction2":"The condition can be JavaScript code or natural language.","ifElseInstruction3":"Examples: \\"If the user is logged in\\" then perform checkout actions, else show login form.","loopTooltip":"While loops repeat a set of actions as long as a condition is true. Examples: \\"While there are more pages\\" click next and extract data, \\"While the loading spinner is visible\\" wait. Use for pagination, polling for changes, or processing lists of unknown length. Include a maximum iteration limit to prevent infinite loops. (Ctrl+Alt+L)","loopInstruction1":"While loops repeat a set of actions as long as a condition is true.","loopInstruction2":"The condition is checked before each iteration.","loopInstruction3":"Examples: \\"While there are more pages\\" click next and extract data, \\"While the loading spinner is visible\\" wait."},"stepStatement":{"groupActions":"Group Actions","clearAll":"Clear All","clearAllTooltip":"Remove all statements from this step container. This action cannot be undone.","clearAllItem1":"Remove all statements from this step container.","clearAllItem2":"This action cannot be undone.","saveAsTemplateTooltip":"Save this group as a template that can be reused in other test cases.","saveAsTemplateItem1":"Save this group as a template.","saveAsTemplateItem2":"The template can be used in other test cases.","saveAsTemplateItem3":"Current group will be converted to reference the new template."},"createForm":{"titleLabel":"Title","titlePlaceholder":"Enter test case title","showLess":"Show Less","showMore":"Show More","startingUrlLabel":"Starting URL","testAccountLabel":"Test Account","disableAutoLogin":"Disable auto login","targetPlatformLabel":"Target Platform and Device","selectSpecificDevice":"Select specific device","loadingDevices":"Loading devices...","selectAndroidDevice":"Select Android device","iosComingSoon":"iOS device selection coming soon","nativeMobileTesting":"Native mobile app testing via Appium","deviceOptimized":"Test will be optimized for the selected device viewport and characteristics","folderLabel":"Folder","folderOptional":"(optional)","folderPlaceholder":"Select a folder (leave empty for root)","folderHint":"Test case will be created in the selected folder","testCreationMode":"Test Creation Mode","aiGenerate":"AI Generate","aiGenerateDescription":"AI automatically generates test cases","aiImport":"AI Import","aiImportDescription":"Import test cases via YAML upload","single":"Single","batch":"Batch","goalLabel":"Goal","goalOptional":"(optional)","goalPlaceholder":"Describe what you want to test. For example: 'Login to the application and verify the dashboard is displayed'. Or Leave empty to use the no-code editor...","goalHint":"With a goal, AI generates test steps automatically. Without a goal, use the agentic no-code editor to build steps.","testFlowYamlLabel":"Test Flow YAML","testFlowYamlRequired":"(required)","testFlowYamlHint":"Paste exported test case YAML. AI will import and structure the test flow automatically.","testFlowYamlPlaceholder":"Paste exported test case YAML. For example:\\n\\ngoal: Verify user can log in and see dashboard\\nurl: https://example.com\\nstatements:\\n - Navigate to https://example.com/login\\n - Enter \\"test@example.com\\" in the email field\\n - Enter \\"Password123!\\" in the password field\\n - Click the \\"Sign in\\" button\\n - VERIFY: Dashboard is visible\\n\\nOr paste a full exported YAML from an existing test case.","yamlRequired":"Please upload a valid YAML file with test cases","testFlowYamlContentRequired":"Test flow YAML is required","csvRequired":"Please upload a valid CSV file with test cases","modifyTest":"Modify Test","saveTestCase":"Save Test Case","createWithCopilot":"Create with Copilot","creating":"Creating...","creatingCount":"Creating {count} Test Cases...","createCount":"Create {count} Test Cases","createTestCases":"Create Test Cases","createTestCase":"Create Test Case","createNewTestCase":"Create New Test Case","failedToCreateTestCase":"Failed to create test case","retryParamsUnavailable":"Cannot retry: upload parameters not available","generatingTestCases":"Generating test cases...","generatingTestCasesSubText":"Please wait while we generate your test cases. You will be redirected to the test cases list when complete."},"createCodeForm":{"createNewTestCase":"Create New Test Case","agentMode":"Agent Mode","titleLabel":"Title","titlePlaceholder":"Enter test case title","testAccountLabel":"Test Account","setupTest":"Setup Test","teardownTest":"Teardown Test","saveTestCase":"Save Test Case"},"generalSettings":{"settingsTitle":"Settings","disableAutoLogin":"Disable Auto Login","disableAutoLoginTooltip":"When enabled, the test will not automatically log in using the selected environment.","autoDismissModal":"Auto Dismiss Modal","autoDismissModalTooltip":"When enabled, the test will automatically dismiss modals (like cookie consent) during self-healing.","autoFix":"Auto Fix","autoFixTooltip":"Override the organization default for this test case. When enabled, AI will automatically analyze and fix test failures.","autoFixDefault":"Default ({state})","autoFixOn":"On","autoFixOff":"Off","autoFixStateOn":"On","autoFixStateOff":"Off","targetDevice":"Target Device","browserLocale":"Browser Locale","browserLocaleTooltip":"Override the browser's language and timezone for this test. Leave blank to use the browser default.","language":"Language","languagePlaceholder":"Default (en-US)","timezone":"Timezone","timezonePlaceholder":"Default (America/Los_Angeles)","browserMedia":"Browser Media","browserMediaTooltip":"Enables fake camera/microphone + auto-accept media prompts for Chromium. Other browsers ignore these settings.","enableCamera":"Enable Camera","enableMicrophone":"Enable Microphone","fileIdNameNotLoaded":"FILE-{id} (name not loaded)","selectAudioFile":"Select audio file for microphone","audioFileHint":"Audio file from test data to use for fake microphone capture","selectAudioFileModalTitle":"Select Audio File for Microphone","noAudioFiles":"No audio files (.wav or .mp3) found in test data. Upload audio files to use them as microphone input.","browserExtension":"Browser Extension","browserExtensionTooltip":"Loads a Chrome extension from test data (.crx or .zip). Only supported in Chromium and headed mode.","enableExtension":"Enable Extension","selectExtensionFile":"Select extension file","extensionFileHint":"Extension package from test data (.crx or .zip)","selectExtensionFileModalTitle":"Select Extension File","noExtensionFiles":"No extension files (.crx or .zip) found in test data. Upload an extension package to use it.","extraHeaders":"Extra HTTP Headers","extraHeadersTooltip":"Add custom HTTP headers sent with every browser request (e.g., authorization tokens, feature flags). Headers are sent in plain text.","extraHeadersAddButton":"Add Header","extraHeadersNamePlaceholder":"Header name","extraHeadersValuePlaceholder":"Header value","extraHeadersColumnName":"Name","extraHeadersColumnValue":"Value","extraHeadersNameRequired":"Header name is required","extraHeadersNameInvalid":"Invalid header name — use letters, digits, hyphens, or underscores only","extraHeadersNameDuplicate":"Header name already exists","environmentConfigurations":"Environment Configurations"},"environmentSelection":{"environment":"Environment","overrideUrl":"Override URL (Optional)","overrideUrlDefaultPrefix":"Default: {url}","overrideUrlPlaceholder":"Enter custom URL","overrideTestAccount":"Override Test Account (Optional)","overrideTestAccountDescription":"By default, the test account configured for each test case's environment will be used","overrideVariables":"Override Variables (Optional)","overrideVariablesDescription":"Variables defined here will override environment variables for this run","accountsSelectedInfo":"{count} accounts selected. Each account will run separately, creating {count} test run{plural} per test case.","addVariable":"Add Variable","keyPlaceholder":"Key","valuePlaceholder":"Value","removeVariable":"Remove variable"},"environmentConfigsList":{"unknownEnvironment":"Unknown Environment","notConfigured":"Not configured","specificAccountsNoneSelected":"Specific accounts (none selected)","unknown":"Unknown","testEditorEnvironmentTooltip":"This environment is used as the default when editing the test steps.","testEditorEnvironment":"Test Editor Environment","setAsStepEditorEnv":"Set as Step Editor Env","startingUrl":"Starting URL","testAccount":"Test Account","hooks":"Hooks","addEnvironmentConfig":"Add Environment Config","allEnvironmentsConfigured":"All environments have been configured","editEnvironmentConfig":"Edit Environment Config","updateConfig":"Update Config","addConfig":"Add Config"},"explorer":{"loadingTestCases":"Loading test cases","loadingSubText":"This won't take long","emptyTitle":"Tests","emptyDescription1":"Tests are automated checks that validate how your product works, from login flows to complex user journeys.","emptyDescription2":"Each test is a sequence of actions and verifications, powered by AI or written step by step, so you can catch issues before users do.","createFirstTest":"Create your first test","documentation":"Documentation","newRootFolder":"New Root Folder","columnName":"Name","columnStatus":"Status","columnPlatform":"Platform","columnLatestResult":"Latest Result","columnCreatedBy":"Created By","filterStatus":"Status","filterLabels":"Labels","filterCreatedBy":"Created By","filterDevice":"Device","filterEnvironment":"Environment","filterTestAccount":"Test Account","filterTestAccountDescription":"Shows test cases where at least one environment config includes the selected test account.","filterLatestResult":"Latest Result","filterHasAutoFix":"Auto Fix","filterOptionActive":"Active","filterOptionDraft":"Draft","filterOptionPassed":"Passed","filterOptionFailed":"Failed","filterOptionNotStarted":"Not Started","filterOptionHasAutoFix":"Has Auto Fix","filterActive":"Filter Active","filterAutoFix":"Filter Auto Fix","filterDraft":"Filter Draft","filterFailed":"Filter Failed","filterNotStarted":"Filter Not Started","filterPassed":"Filter Passed"},"filterBar":{"statusDisplay":"Status","labelsDisplay":"Labels","statusMore":"{first} + {count} more","labelMore":"{first} + {count} more","devicesPlaceholder":"Devices","clearAllFilters":"Clear all filters","clearShort":"Clear","filterActive":"Filter Active","filterDraft":"Filter Draft"},"liveView":{"liveViewTab":"Live View","videoTab":"Video","previewsTab":"Previews","previewsWithCount":"Previews ({count})","deviceTooltip":"Device: {name}","reload":"Reload","reloading":"Reloading...","exitFullScreen":"Exit full screen","fullScreen":"Full screen","liveViewNotAvailable":"Live View Not Available","liveViewNotAvailableDesc":"Live test preview is not available in Code mode. Switch to Agent mode in Settings to use this feature.","testLiveView":"Test Live View","waitingForGeneration":"Waiting for generation to start...","initializingDebug":"Initializing debug session...","clickToStart":"Click the \\"Start\\" or \\"Run\\" button in the left panel to start the browser and see automation in real-time.","noVideoRecording":"No video recording available","generationScreenshot":"Generation screenshot","waitingForScreenshot":"Waiting for generation screenshot...","livePreviewTitle":"Live Preview Title"},"userSelection":{"noneOption":"None","anyOption":"Any","unknownAccount":"Unknown account","selectedAccounts":"{count} selected accounts","searchPlaceholder":"Search accounts...","createdLabel":"Created: {date}"},"viewRecordingModal":{"title":"Test Recording: {title}","noRecordingAvailable":"No recording available for this test case","failedToLoad":"Failed to load recording","noVideoRecording":"No video recording available","browserNotSupported":"Your browser does not support the video tag."},"simpleList":{"searchPlaceholder":"Search test cases...","columnId":"ID","columnName":"Name","columnUpdated":"Updated"},"sidebar":{"testCaseInfo":"Test Case Info","createdAt":"Created At","lastUpdated":"Last Updated","createdBy":"Created By","updatedBy":"Updated By","targetDevice":"Target Device","actions":"Actions","extractKnowledge":"Extract Knowledge","extractingKnowledge":"Extracting Knowledge...","knowledgeExtractedMessage":"Knowledge has been successfully extracted from this test case","failedToExtractKnowledge":"Failed to extract knowledge","failedToExtractKnowledgeFromTestCase":"Failed to extract knowledge from test case","notAvailable":"N/A"},"statementChanges":{"added":"Added ({count})","deleted":"Deleted ({count})","modified":"Modified ({count})","moved":"Moved ({count})"},"assertions":{"placeholder":"Enter assertion description...","emptyText":"Click to add assertion"},"basicAction":{"placeholder":"Enter action description...","emptyText":"Click to add description","findElement":"Find element"},"infoView":{"variablesTab":"Variables","consoleTab":"Console","noVariables":"No variables available. Start running your test to see variables here.","noConsoleOutput":"No console output available. Console logs will appear here during test execution.","clickToExpand":"Click to expand","dragToResize":"Drag to resize"},"resultPopup":{"latestRunResult":"Latest Run Result","status":"Status:","started":"Started:","ended":"Ended:","duration":"Duration:","environment":"Environment:","summary":"Summary:","notStarted":"Not Started","passedWithAutofix":"Passed with autofix"},"testDataSelector":{"selectTestData":"Select Test Data","needToUpload":"Need to upload test data files?","goToSettings":"Go to Settings → Test Data","selectTestDataModalTitle":"Select Test Data","confirmUploadTitle":"Confirm Upload Test Data","confirmUploadDesc":"Upload file {filename} and attach to the test.","done":"Done","cancel":"Cancel","confirm":"Confirm"},"testDataSelectionList":{"searchPlaceholder":"Search test data file name...","columnId":"ID","columnName":"Name","columnLastUpdated":"Last Updated","done":"Done"},"templateSelector":{"placeholder":"Select a template"},"simpleExplorer":{"searchPlaceholder":"Search test cases...","loadingTestCases":"Loading test cases...","selectedCount":"{count} selected","columnName":"Name","columnStatus":"Status","columnCreatedBy":"Created By"},"layout":{"overviewTab":"Overview","settingsTab":"Settings","historyTab":"History","runRecordsTab":"Run Records","codeTab":"Code","playgroundTab":"UX Playground","autofixAvailable":"An autofix is available for this test case.","viewResult":"View result","closeDetails":"Close details"},"runRecordsTab":{"loadError":"Failed to load run records. Please try again.","empty":"No run records yet","emptyHint":"Run records will appear here after the test case has been executed.","columnRunId":"Run ID","columnResult":"Result","columnStarted":"Started","columnDuration":"Duration","columnEnvironment":"Environment","paginationInfo":"{total} records · Page {page} of {totalPages}"},"diffViewer":{"modalTitle":"Test Flow Changes"},"flowEditor":{"teardownTitle":"Teardown","removeTeardown":"Remove","addTeardown":"Add Teardown"},"plansSection":{"schedulesTitle":"Schedules","noSchedulesLinked":"No schedules linked","viaSuiteBadge":"Via Suite"},"suitesSection":{"testSuitesTitle":"Test Suites","noTestSuitesLinked":"No test suites linked"},"csvSection":{"uploadCsvFile":"Upload CSV File","downloadTemplate":"Download Template","selectCsvFile":"Select CSV file","csvFormatTitle":"CSV Format Requirements","formatDescription":"Your CSV file must contain \\"title\\" and \\"goal\\" columns. The goal column should contain a description of what you want to test. AI will automatically generate test steps based on each goal. Click \\"Download Template\\" above to get a sample file with the correct format.","exampleFormat":"Example format (use quotes for fields containing commas or newlines):","exampleCsv":"title,goal\\nLogin Test,\\"Test login with valid credentials\\"\\nCheckout Test,\\"Test checkout process with multiple items\\"","tipCommasAndNewlines":"Tip: Handling commas and newlines: Wrap fields containing commas or newlines in double quotes","tipIncludingQuotes":"Tip: Including quotes: Use double quotes (\\"\\") to include actual quotes in text","tipGoalFormat":"Tip: Goal format: Provide a clear description of what you want to test (e.g., \\"Test login functionality\\" or \\"Verify checkout process\\")","parsingCsv":"Parsing CSV file...","previewCount":"Preview ({count} test case{plural})","columnTitle":"Title","columnGoal":"Goal","columnTestFlow":"Test Flow","errors":{"fileTooLarge":"File size too large. Please upload a file smaller than 5MB","emptyFile":"CSV file is empty. Please upload a file with test case data","missingHeaderOrData":"CSV file must contain at least a header row and one data row. Please check your file format","missingRequiredColumns":"CSV file must contain \\"title\\" and \\"goal\\" columns. Found columns: {columns}","rowMissingRequiredColumns":"Row {row}: Missing required columns (expected at least {minColumns} columns)","rowMissingTitle":"Row {row}: Missing title","rowMissingGoal":"Row {row}: Missing goal","rowTitleTooLong":"Row {row}: Title too long (max 200 characters)","rowGoalTooLong":"Row {row}: Goal too long (max 2000 characters)","noValidRowsWithDetails":"No valid test cases found. Errors:\\n{errors}{more}","noValidRows":"No valid test cases found in CSV file. Please check your file format","tooManyRows":"Too many test cases. Please limit to 100 test cases per upload","parseFailed":"Failed to parse CSV file. Please check the file format and try again","readFailed":"Failed to read CSV file. Please try again or use a different file","invalidExtension":"Please upload a CSV file"}},"yamlSection":{"uploadYamlFile":"Upload YAML File","downloadTemplate":"Download Template","selectYamlFile":"Select YAML file (.yaml or .yml)","yamlFormatTitle":"YAML Format Requirements","parsingYaml":"Parsing YAML file...","previewCount":"Preview ({count} test case{plural})","columnTitle":"Title","columnGoal":"Goal"},"screencast":{"connecting":"Connecting to screencast...","failedToConnect":"Failed to connect to screencast","disconnected":"Screencast disconnected","browserScreencast":"Browser Screencast"},"multiPageViewer":{"noPagesOpen":"No pages open","connectingToBrowser":"Connecting to browser...","closeInspector":"Close Inspector","openInspector":"Open Inspector","pickingLocator":"Picking locator...","cancelLocatorPicking":"Cancel locator picking","failedToConstructUrl":"Failed to construct DevTools URL","recording":"Recording","record":"Record","clickToStopRecording":"Click to Stop Recording","clickToStartRecording":"Click to Start Recording","picking":"Picking","pick":"Pick","clickToStopPicking":"Click to Stop Picking Element","clickToStartPicking":"Click to Start Picking Element"},"agentFixDiffViewer":{"diffSummaryTitle":"Diff Summary","originalTestFlow":"Original Test Flow","agentFixedTestFlow":"Agent-Fixed Test Flow","changedCount":"{count} changed","statementsCount":"{count} statements","changeLabel":"Change","noChanges":"No changes","noStatements":"No statements to display","changeDetails":"Change Details","deletedInModified":"Deleted in modified","addedInModified":"Added in modified"},"videoPreview":{"creatingTestCase":"Creating Test Case","recordingWillAppearSoon":"Test recording will appear here shortly","testRecordingPreview":"Test Recording Preview","recordingWillAppear":"Test recording will appear here","browserNotSupported":"Your browser does not support the video tag."},"imageViewer":{"noImagesAvailable":"No Images Available","noImagesDesc":"Images will appear here when available from test execution or debugging."},"actionGenerationDebugView":{"tabSystemPrompt":"System Prompt","tabUserPrompt":"User Prompt","tabReasoningContent":"Reasoning Content","tabRawResponse":"Raw Response","tabKnowledge":"Knowledge ({count})","tabCuaInput":"CUA Input","tabCuaResponse":"CUA Response"},"labels":{"labelsTitle":"Labels"},"csvImportProgress":{"backgroundInfo":"You can close this window at any time. The import process will continue in the background.","columnTitle":"Title","columnStatus":"Status","statusPending":"Pending","statusCreating":"Creating","statusGenerating":"Generating","statusCompleted":"Completed","statusError":"Error","goToTestCases":"Go To Test Cases"},"historyViewer":{"title":"Test Flow History Version","updatedAt":"{name} updated at {timeAgo}"},"generationView":{"queued":"Queued","regenerating":"({count})Regenerating a better test","generating":"Generating"}}`);
|
|
198309
198311
|
const TestSuites = { "exportingTitle": "Exporting Test Suite", "exportedSuccessfully": "Test suite exported successfully", "failedToExport": "Failed to export test suite", "urlCopied": "Test suite URL copied to clipboard", "failedToCopyUrl": "Failed to copy URL", "createdSuccessfully": "Test suite created successfully", "failedToCreate": "Failed to create test suite", "failedToUpdateTitle": "Failed to update test suite title", "deleteTitle": "Delete test suite?", "properties": "Properties", "copyTestSuiteUrl": "Copy test suite URL", "totalTests": "Total Tests", "activeTests": "Active Tests", "inactiveTests": "Inactive Tests", "lastRun": "Last Run", "never": "Never", "selectedCount": "{count} selected", "latestRun": "Latest Run", "viewRunDetails": "View run details", "result": "Result", "startTime": "Start Time", "endTime": "End Time", "duration": "Duration", "totalPassed": "Total Passed", "totalFailed": "Total Failed", "invalidDate": "Invalid date", "notAvailable": "N/A", "testSuiteTitle": "Test Suite Title", "enterTestSuiteTitle": "Enter test suite title", "description": "Description", "enterTestSuiteDescription": "Enter a description for the test suite", "addTestCases": "Add Test Cases", "testCases": "Test Cases", "selectTestCasesToAddToSuite": "Select test cases to add to this test suite", "addSelectedWithCount": "Add Selected ({count})", "suiteId": "SUITE ID", "title": "Title", "latestResult": "Latest Result", "createdBy": "Created By", "testsCount": "{count} tests", "testsFailedCount": "{count} {count, plural, one {Test} other {Tests}} Failed", "notStarted": "Not Started", "runTestSuite": "Run Test Suite", "deleteSelected": "Delete Selected", "testSuitesTitle": "Test Suites", "emptyDescriptionLine1": "Test Suites let you group related test cases together, so you can run, track, and manage them as a single unit.", "emptyDescriptionLine2": "Use suites to organize tests by feature, workflow, or release, and easily include them in schedules for regular automated runs.", "createFirstTestSuite": "Create your first test suite", "documentation": "Documentation", "testSuiteSingular": "test suite", "removeFromSuite": "Remove from suite", "githubActionsIntegration": "GitHub Actions Integration", "githubActionsIntegrationDescription": "Configure your GitHub workflow to automatically run this test suite. When a run completes, notifications will be sent to the channels configured below.", "viewSetupGuide": "View setup guide", "slackNotifications": "Slack Notifications", "suiteSlackNotificationsDescription": "Receive test results in Slack channels when this test suite is run via GitHub Actions. Select which test outcomes trigger notifications.", "receiveResultsInSlackChannels": "Receive test results in Slack channels,", "oneTimeSetup": "one-time setup", "requiredSuffix": "required.", "addNewChannels": "Add new channels", "webhookNotifications": "Webhook Notifications", "suiteWebhookNotificationsDescription": "Send test results to webhook endpoints when this test suite is run via GitHub Actions. Configure integrations with external systems.", "sendResultsToWebhookEndpoints": "Send test results to webhook endpoints,", "manageWebhookEndpoints": "Manage webhook endpoints", "testSuiteDetails": "Test Suite Details", "created": "Created", "lastUpdated": "Last Updated", "byUser": "by {user}", "latestRunResult": "Latest Run Result", "viewDetails": "View Details", "passed": "Passed", "failed": "Failed", "successRate": "Success Rate", "noTestRunsYet": "No test runs yet. Run this test suite to see results here.", "createTestSuite": "Create Test Suite", "selectTestCasesToIncludeInSuite": "Select test cases to include in this test suite", "latest": "Latest", "untitledTestSuite": "Untitled Test Suite", "failedToLoadTestSuites": "Failed to load test suites", "failedToLoadTestCases": "Failed to load test cases", "testSuiteDeletedSuccessfully": "Test suite deleted successfully", "failedToDeleteTestSuite": "Failed to delete test suite", "testSuitesDeletedSuccessfully": "{count, plural, one {1 test suite deleted successfully} other {{count} test suites deleted successfully}}", "failedToDeleteSomeTestSuites": "Failed to delete some test suites", "deleteTestSuiteTitle": "Delete Test Suite", "deleteTestSuiteConfirmMessage": "Are you sure you want to delete this test suite? This action cannot be undone.", "deleteMultipleTestSuitesTitle": "Delete Multiple Test Suites", "deleteMultipleTestSuitesConfirmMessage": "Are you sure you want to delete {count} {count, plural, one {test suite} other {test suites}}? This action cannot be undone.", "failedToLoadTestSuiteData": "Failed to load test suite data", "returnToTestSuites": "Return to Test Suites", "removeSelectedTestsTitle": "Remove Selected Tests", "removeSelectedTestsConfirm": "Are you sure you want to remove selected tests from the suite? This action cannot be undone.", "remove": "Remove", "removeSelectedCount": "Remove Selected ({count})", "tabs": { "overview": "Overview", "ciAndNotifications": "CI & Notifications" } };
|
|
198310
198312
|
const Schedules = { "scheduleUpdatedTitle": "Schedule Updated", "scheduleUpdatedMessage": "Schedule has been updated successfully", "updateFailedTitle": "Update Failed", "createdSuccessfully": "Schedule created successfully", "failedToCreate": "Failed to create schedule. Please try again.", "titleRequired": "Please enter a title", "switchedToTestsSuitesMode": "Switched to Tests & Suites mode", "viewUpdatedSuccessfully": "View updated successfully", "failedToUpdate": "Failed to update", "scheduleStatusUpdated": "Schedule status updated", "failedToUpdateScheduleStatus": "Failed to update schedule status", "failedToSaveParameterSets": "Failed to save parameter sets", "failedToUpdateDefaultParameterSet": "Failed to update default parameter set", "failedToSaveDefaultVariables": "Failed to save default variables", "webhookEndpointDisabled": "This endpoint is disabled globally in Settings/Notifications", "environmentMismatchTooltip": "The environment of this schedule does not match some of its test cases.", "totalTestsCount": "{count} Total {count, plural, one {Test} other {Tests}}", "viewWithId": "View #{id}", "suiteCount": "{count} {count, plural, one {Suite} other {Suites}}", "scheduleMustBeActiveToRunInCloud": "Schedule must be Active to run in cloud", "runInCloud": "Run in Cloud", "properties": "Properties", "copyScheduleUrl": "Copy schedule URL", "created": "Created", "notAvailable": "N/A", "lastUpdated": "Last Updated", "description": "Description", "addScheduleDescription": "Add a schedule description...", "saving": "Saving...", "saved": "Saved", "failedToSave": "Failed to save", "addTestCases": "Add Test Cases", "loadingTestCases": "Loading test cases", "testCaseSelectedCount": "{count} {count, plural, one {test case} other {test cases}} selected", "addSelected": "Add Selected", "addTestSuites": "Add Test Suites", "testSuiteSelectedCount": "{count} {count, plural, one {test suite} other {test suites}} selected", "status": "Status", "changeStatus": "Change Status", "schedule": "Schedule", "schedId": "SCHED ID", "name": "Name", "totalTests": "Total Tests", "type": "Type", "environment": "Environment", "createdBy": "Created By", "testsCount": "{count} tests", "viewBased": "View Based", "manualSelection": "Manual Selection", "noUrlAvailable": "No URL available", "testPlanMustBeActiveToRun": "Test Plan must be Active to run", "deleteSchedulesTitle": "Delete {count} {count, plural, one {schedule} other {schedules}}?", "confirmDeleteSchedules": "Are you sure you want to delete {target}? This action cannot be undone.", "thisSchedule": "this schedule", "theseSchedules": "these schedules", "schedulesDeletedSuccessfully": "{count, plural, one {Schedule deleted successfully} other {Schedules deleted successfully}}", "failedToDeleteSchedules": "{count, plural, one {Failed to delete schedule} other {Failed to delete schedules}}", "deleteSelected": "Delete Selected", "deleteFailedTitle": "Failed to Delete Schedule", "unexpectedError": "An error occurred", "schedulesTitle": "Schedules", "emptyDescriptionLine1": "Schedules run your tests automatically on a recurring basis, so you can catch issues without manual runs.", "emptyDescriptionLine2": "A schedule can include individual tests or test suites and runs them in a selected environment at a set time.", "createFirstSchedule": "Create your first schedule", "documentation": "Documentation", "scheduleSingular": "schedule", "emailNotifications": "Email Notifications", "emailNotificationsDescription": "Send scheduled test results to email addresses when tests run on schedule. Select organization members or add custom email addresses.", "slackNotifications": "Slack Notifications", "slackNotificationsDescription": "Send scheduled test results to Slack channels when tests run on schedule. Select channels to receive notifications.", "receiveResultsInSlackChannels": "Receive test results in Slack channels,", "requiredSuffix": "required.", "addNewChannels": "Add new channels", "webhookNotifications": "Webhook Notifications", "webhookNotificationsDescription": "Send scheduled test results to webhook endpoints when tests run on schedule. Configure custom integrations with external systems.", "sendResultsToWebhookEndpoints": "Send test results to webhook endpoints,", "manageWebhookEndpoints": "Manage webhook endpoints", "addEmails": "Add emails", "receiveResultsInSelectedSlackChannels": "Receive test results in selected Slack channels.", "oneTimeSetup": "one-time setup", "emailAddressRequired": "Email address is required", "invalidEmailAddress": "Invalid email address", "emailAlreadyAdded": "This email is already added", "enterEmailAddress": "Enter email address", "add": "Add", "organizationMembersSubscribed": "Organization Members ({subscribed}/{total} subscribed)", "environmentMismatch": "Environment mismatch", "clickToEditParameterSets": "Click to edit parameter sets", "default": "Default", "parameterSetsCount": "{count} sets", "enabledParameterSetsCount": "{enabled} / {total} sets", "parameterSets": "Parameter Sets", "removeFromPlan": "Remove from Plan", "removeSelectedCount": "Remove Selected ({count})", "searchTestCases": "Search test cases...", "searchTestSuites": "Search test suites...", "removeTestCase": "Remove Test Case", "removeTestSuite": "Remove Test Suite", "removeFromScheduleConfirm": "Are you sure you want to remove this {itemType} from the schedule? This action cannot be undone.", "testCaseLower": "test case", "testSuiteLower": "test suite", "remove": "Remove", "parameterSetsTitle": "Parameter Sets - {title}", "failedToLoadTestCases": "Failed to load test cases", "selectEnvironment": "Select an environment", "overrideTestAccountOptional": "Override Test Account (Optional)", "overrideTestAccountDescription": "By default, the test account configured for each test case's environment will be used", "preflightTestOptional": "Preflight Test (Optional)", "preflightTestDescription": "Run this test case before dispatching main tests in this schedule.", "selectPreflightTestCase": "Select preflight test case", "clearPreflightTestCase": "Clear preflight test case", "startDateOptional": "Start Date (Optional)", "pickDateAndTime": "Pick date and time", "endDateOptional": "End Date (Optional)", "repeat": "Repeat", "cronTimezoneNotice": "Cron schedules are saved/executed in UTC. Your browser timezone is {browserTz}{browserTzAbbr} {browserOffset}.", "oneTestCaseSelected": "1 test case selected", "noTestCaseSelected": "No test case selected", "saveSchedule": "Save Schedule", "title": "Title", "enterScheduleTitle": "Enter schedule title", "enterScheduleDescription": "Enter schedule description", "testCasesCount": "Test Cases ({count})", "testSuitesCount": "Test Suites ({count})", "viewCount": "View ({count})", "viewSelectionMutuallyExclusive": "Selecting a view is mutually exclusive with test cases and suites - choosing one will clear the other.", "noPublicViewsAvailable": "No public views available. Create a public view first to use view-based schedules.", "searchViews": "Search views...", "viewWithName": "View: {name}", "itemsSelectedCount": "{count} {count, plural, one {item} other {items}} selected", "scheduleConfigured": "Schedule configured", "noScheduleSet": "No schedule set", "createSchedule": "Create Schedule", "basicInfo": "Basic Info", "enterDetails": "Enter details", "testSelection": "Test Selection", "selectTestsOrView": "Select tests or a view", "setUpExecutionSchedule": "Set up execution schedule", "creatingSchedule": "Creating schedule", "thisWontTakeLong": "This won't take long", "changeTestSource": "Change test source", "useAView": "Use a View", "useTestsAndSuites": "Use Tests & Suites", "switchToManualDescription": "Switch to manually managing test cases and suites. The current view association will be removed.", "testSource": "Test source", "testsResolvedCount": "({count} {count, plural, one {test} other {tests}} resolved)", "testsAndSuites": "Tests & Suites", "testSuites": "Test Suites", "start": "Start", "end": "End", "from": "From", "to": "To", "untitledTestPlan": "Untitled Test Plan", "flakyTestRate": "Flaky Test Rate", "averageDurations": "Average Durations", "allTimeStats": "All-time Stats", "latestRunResult": "Latest Run Result", "report": { "failedToLoadReportData": "Failed to load report data", "loadingReport": "Loading report", "fetchingTestRunData": "Fetching test run data and history...", "noTestRunsExecuted": "No test runs have been executed for this test plan yet.", "latestRunDescription": "Most recent test results with pass/fail distribution.", "flakyDescription": "Tests that initially failed but succeeded on retry.", "averageDurationDescription": "Test execution time metrics for test cases.", "allTimeDescription": "A high pass rate shows test stability, a low rate suggests issues.", "casesLabel": "{count} Cases", "testsLabel": "{count} Tests", "percentPassed": "{rate}% Passed", "percentFlaky": "{rate}% Flaky", "runNumber": "Run #{id}", "startedAt": "Started: {time}", "endedAt": "Ended: {time}", "durationWithValue": "Duration: {value}", "viewRunDetails": "View Run Details", "stable": "Stable", "flaky": "Flaky", "passed": "Passed", "failed": "Failed", "caseDuration": "Case Duration", "planDuration": "Plan Duration", "totalDuration": "Total Duration", "durationSeconds": "Duration (s)", "runResultsTrendTitle": "Run Results Trend Over Time", "runResultsTrendDescription": "Tracks pass/fail rates across {count} test runs. Growing red areas may indicate increasing flakiness, while consistent green shows test stability.", "testCaseHistory": "Test Case History", "flakyDefinitionPrefix": "A ", "flakyDefinitionSuffix": " test is one that initially fails but succeeds when retried in the same run. It indicates potential instability that should be addressed." }, "detailPage": { "loadingSchedule": "Loading schedule", "fetchingScheduleDetails": "Fetching schedule details...", "scheduleNotFound": "Schedule not found", "returnToSchedules": "Return to Schedules", "tabs": { "overview": "Overview", "tests": "Tests", "report": "Report", "notifications": "Notifications", "history": "History" } } };
|
|
198311
198313
|
const Functions = { "definitionTitle": "Definition", "reloadingFunctions": "Reloading Functions...", "tryItOutTitle": "Try it out", "reset": "Reset", "run": "Run", "changeStatus": "Change Status", "tabs": { "overview": "Overview", "usage": "Usage", "settings": "Settings", "editor": "Editor", "preview": "Preview", "dragToResize": "Drag to resize", "clickToExpand": "Click to expand", "clickToCollapse": "Click to collapse" }, "header": { "editFunctionTitle": "Edit {name} function" }, "createModal": { "title": "Create New Function", "nameLabel": "Name of function", "namePlaceholder": "my_function", "descriptionLabel": "Description", "descriptionPlaceholder": "Describe what this function does and how it should be used", "argumentsLabel": "Arguments", "argumentPlaceholder": "argumentName", "addNewArgument": "+ Add a new argument", "removeArgumentAriaLabel": "Remove argument", "creating": "Creating...", "functionNameRequired": "Function name is required", "functionNameSnakeCaseError": "Function name must use snake_case format: only lowercase letters, numbers, and underscores. No uppercase, hyphens, or spaces allowed.", "provideValidFunctionName": "Please provide a valid function name" }, "codeEditor": { "functionSignature": "Function Signature", "nameLabel": "Name:", "namePlaceholder": "my_function", "descriptionLabel": "Description:", "descriptionPlaceholder": "Function description", "parametersLabel": "Parameters:", "parameterPlaceholder": "param_name", "addParameter": "Add", "removeParameterAriaLabel": "Remove Parameter", "functionNameRequired": "Function name is required", "functionNameSnakeCaseError": "Use snake_case format: lowercase letters, numbers and underscores only" }, "list": { "funcId": "FUNC ID", "name": "Name", "description": "Description", "usedBy": "Used By", "status": "Status", "createdBy": "Created By", "created": "Created", "updated": "Updated", "deleteSelected": "Delete Selected", "deleteConfirmTitle": "Delete {count, plural, one {function} other {functions}}?", "deleteConfirmMessage": "Are you sure you want to delete {count} {count, plural, one {function} other {functions}}? This action cannot be undone.", "recordLabelFunction": "function" }, "emptyState": { "title": "Functions", "descriptionLine1": "Functions are reusable building blocks you can call from any test, from API requests to multi step workflows and data processing.", "descriptionLine2": "Write them once, use them everywhere. Functions run with full Playwright access and can store results in the test context, so your tests stay clean and consistent.", "createFirstFunction": "Create your first function", "documentation": "Documentation" }, "usageTab": { "id": "ID", "title": "Title", "recordLabelTestCase": "test case" }, "settings": { "pathMustStartWithSlash": "Path must start with /", "loadingFunctionDetails": "Loading function details...", "tryItOutSettings": "Try it out Settings", "disableAutoLogin": "Disable Auto Login", "environmentAndUrl": "Environment & URL", "testAccount": "Test Account" }, "createdSuccessfully": "Function created successfully", "failedToSave": "Failed to save function. Please try again.", "failedToLoadTestAccounts": "Failed to load test accounts", "settingsSavedSuccessfully": "Settings saved successfully", "failedToSaveSettings": "Failed to save settings", "page": { "deleteFunctionTitle": "Delete function?", "deleteFunctionConfirmMessage": "Are you sure you want to delete this function? This action cannot be undone.", "delete": "Delete", "cancel": "Cancel", "functionDeletedSuccessfully": "Function deleted successfully", "failedToDeleteFunction": "Failed to delete function", "functionNotFound": "Function not found", "copyName": "{name} (Copy)", "functionDuplicatedAs": 'Function duplicated as "{name} (Copy)"', "failedToDuplicateFunction": "Failed to duplicate function", "functionStatusUpdated": "Function status updated", "failedToUpdateFunctionStatus": "Failed to update function status", "failedToLoadFunctions": "Failed to load functions", "retry": "Retry", "testFunctionNotFound": "Test function not found", "returnToTestFunctions": "Return to Test Functions" } };
|
|
198312
198314
|
const ResultViews = { "selector": { "copySuffix": "(Copy)", "systemViews": { "all": "All Runs", "failed": "Failed Runs" }, "tooltips": { "noFiltersApplied": "No filters applied" }, "actions": { "copyLink": "Copy link", "createNewView": "Create new view" }, "notifications": { "linkCopied": { "title": "Link copied", "message": "View link copied to clipboard" }, "duplicated": { "message": 'View duplicated as "{name}"' }, "duplicateFailed": "Failed to duplicate view", "deleted": { "message": 'View "{name}" deleted successfully' }, "deleteFailed": "Failed to delete view" }, "deleteModal": { "title": "Delete View", "description": 'Are you sure you want to delete "{name}"? This action cannot be undone.' } }, "editPanel": { "fields": { "namePlaceholder": "View name", "descriptionPlaceholder": "Add description...", "saveTo": "Save to" }, "visibility": { "shared": "Shared", "private": "Private", "sharedDescription": "Share with your team", "privateDescription": "Only you can see this view" }, "validation": { "nameRequired": "View name is required" }, "notifications": { "created": 'View "{name}" created successfully', "updated": 'View "{name}" updated successfully', "saveFailed": "Failed to save view" } }, "page": { "title": "Result Views", "copySuffix": "(Copy)", "failedToLoadViews": "Failed to load result views", "retry": "Retry", "deleteModal": { "title": "Delete Result View", "description": 'Are you sure you want to delete "{name}"? This action cannot be undone.' }, "notifications": { "deleted": { "message": 'View "{name}" has been deleted.' }, "deleteFailed": "Failed to delete view. Please try again.", "duplicated": { "message": '"{name}" has been created.' }, "duplicateFailed": "Failed to duplicate view.", "linkCopied": { "title": "Link copied", "message": "View link copied to clipboard." }, "copyLinkFailed": "Failed to copy link." } }, "list": { "emptyState": { "title": "Result Views", "description": "Result views are saved filter combinations that help you quickly find the run results you need. Create your first view to get started.", "primaryAction": "Create your first view" } } };
|
|
198313
|
-
const RunResults = { "failedToLoadUserInfo": "Failed to load some user info, showing as unknown.", "runUrlCopied": "Run URL copied to clipboard", "failedToCopyUrl": "Failed to copy URL", "reAnalysisQueued": "Re-analysis queued", "failedToTriggerReAnalysis": "Failed to trigger re-analysis", "reAnalysisMessage": "The next run of this test will trigger a fresh failure analysis.", "failedToUpdateHardCaseStatus": "Failed to update hard case status", "overview": { "failedToUpdateFingerprint": "Failed to update fingerprint", "failedToQueueReAnalysis": "Failed to queue re-analysis", "failedToUpdateHardCaseSteps": "Failed to update hard case steps", "stepMarkedAsHardCase": "Step marked as hard case", "stepRemovedFromHardCases": "Step removed from hard cases", "runType": { "runWithoutFix": "Run Without Fix", "run": "Run", "fixRun": "Fix Run", "runWithFix": "Run With Fix", "refixRun": "Refix Run" }, "runLabel": { "single": "{type} ({outcome})", "first": "First {type} ({outcome})", "final": "Final {type} ({outcome})", "indexed": "{type} {index} ({outcome})" }, "outcome": { "passed": "Passed", "failed": "Failed", "error": "Error", "unknown": "Unknown" }, "agentFixRunLabel": "Agent Fix Run ({outcome})", "finalRunLabel": "Final Run ({outcome})", "firstRunLabel": "First Run ({outcome})", "executedWithAiModifiedFlow": "This test was executed with an AI-modified test flow.", "autoFixTitle": "Auto Fix", "reusedFailurePatternMessage": "Same failure pattern as a previous run - analysis was skipped. Edit the test case to trigger a new analysis.", "reAnalysisQueuedShort": "Re-analysis queued", "reAnalyzeNextRun": "Re-analyze next run", "viewOriginalAnalysis": "View original analysis", "jumpToFailedStep": "Jump to failed step", "autoRevertedMessage": "Due to the run failure the original test fix was auto-reverted.", "dismissedModal": "{count, plural, one {# modal dismissed} other {# modals dismissed}}", "mainSection": "Main", "teardownSection": "Teardown", "noTestFlow": "No test flow", "noTestStepsDefined": "No test steps defined for this test case.", "noTestResultData": "No test result data available for this run.", "noStepsAvailable": "No steps available" }, "modal": { "breadcrumb": { "results": "Results", "runWithId": "Run {runId}" }, "tabs": { "overview": "Overview", "video": "Video", "trace": "Trace", "logs": "Logs", "context": "Context", "console": "Console", "artifacts": "Artifacts" }, "properties": { "collapse": "Collapse properties", "expand": "Expand properties" }, "sidebar": { "hideTestCases": "Hide test cases", "hideRunHistory": "Hide run history", "showTestCases": "Show test cases", "showRunHistory": "Show run history" } }, "propertiesSidebar": { "title": "Properties", "copyTestRunUrl": "Copy test run URL", "status": "Status", "schedule": "Schedule", "view": "View", "testCase": "Test Case", "parameterSet": "Parameter Set", "testRun": "Test Run", "startTime": "Start Time", "duration": "Duration", "environment": "Environment", "testAccount": "Test Account", "platform": "Platform", "device": "Device", "notAvailable": "N/A", "desktopChrome": "Desktop Chrome", "flaky": "Flaky", "aiAnalysisRan": "AI analysis ran and a fix was generated", "previousAiFixApplied": "Previous AI fix is applied", "passedWithAiFix": "Passed with AI-fixed test flow", "result": { "passed": "Passed", "failed": "Failed", "pending": "Pending", "queued": "Queued", "skipped": "Skipped", "notStarted": "Not Started" } }, "overviewStep": { "startLabel": "Start:", "durationLabel": "Duration:", "autoHealed": "Auto Healed", "autoDismissedModal": "Auto Dismissed Modal", "markAsHardCase": "Mark as hard case", "removeFromHardCases": "Remove from hard cases", "attemptCount": "Attempt {current} / {total}", "screenshot": "Screenshot", "screenshotPreview": "Screenshot preview" }, "fixAcceptedTitle": "Fix accepted", "fixAcceptedMessage": "The AI fix has been applied to the test case.", "fixRejectedTitle": "Fix rejected", "fixRejectedMessageShort": "The AI fix has been rejected and will not be used in future runs.", "fixRejectedMessageLong": "The AI fix has been rejected and failure analysis has been disabled for this test case.", "noTestCaseResultForSummary": "No test case result available for AI summary generation", "aiSummaryGeneratedSuccessfully": "AI summary generated successfully", "testSuiteUrlCopied": "Test suite URL copied to clipboard", "verificationRunViewer": { "title": "Verification Runs", "attempt": "Attempt {attempt}", "watchVideo": "Watch video", "openTrace": "Open trace", "modified": "Modified", "stepScreenshotAlt": "Step {stepId} screenshot", "noScreenshotAvailable": "No screenshot available" }, "contextMenu": { "unpin": "Unpin", "pinToTop": "Pin to top", "copyLink": "Copy link" }, "videoModal": { "title": "Test Recording", "videoTagNotSupported": "Your browser does not support the video tag.", "noVideo": "No video recording available" }, "stats": { "passRate": "Pass Rate", "duration": "Duration", "trigger": "Trigger" }, "summary": { "totalPassed": "Total Passed", "totalFailed": "Total Failed", "notExecuted": "Not Executed" }, "header": { "manualRun": "Manual run", "apiRun": "API run", "scheduledRun": "Scheduled run", "testRun": "Test run", "runOfTarget": "{triggerPrefix} of {target}", "runOfTests": "{triggerPrefix} of {count} Tests", "duration": "Duration: {duration}", "view": "View: {viewName}", "viewWithTestCount": "View: {viewName} ({count} tests)" }, "failBadge": { "noTestsRun": "No tests run", "allTestsPassed": "All tests passed", "testsFailed": "{failedCount} / {totalCount} tests failed" }, "sidebar": { "runDetails": "Run Details", "duration": "Duration: {duration}", "started": "Started {time}", "testResults": "Test Results", "testSuites": "Test Suites", "testCases": "Test Cases" }, "aiSummary": { "noDebugInfo": "No debug information available", "copy": "Copy", "copied": "Copied", "titleLabel": "Title:", "descriptionLabel": "Description:", "rootCauseLabel": "Root Cause:", "suggestedTagsLabel": "Suggested Tags:", "tabs": { "summary": "Summary", "testCaseResult": "TestCaseResult", "testCase": "Test Case", "fullReport": "FullReport", "enrichedTestFlow": "Enriched Test Flow", "formattedInput": "Formatted Input", "llmRequest": "LLM Request", "llmPrompt": "LLM Prompt", "llmResponse": "LLM Response" } }, "historyChart": { "title": "Test Plan Run History", "testsCount": "{count} tests", "passed": "Passed", "failed": "Failed" }, "summaryChart": { "title": "Test Results Distribution", "passRate": "Pass Rate: {rate}%", "testsCount": "{count} tests", "totalTests": "Total Tests", "passed": "Passed", "failed": "Failed" }, "resultItem": { "notStarted": "Not Started", "unnamedTest": "Unnamed Test", "goToTestCase": "Go to Test Case", "viewVideo": "View Video", "viewLogs": "View Logs" }, "resultList": { "runLabel": "RUN-{runId}", "goToTestSuite": "Go to Test Suite", "recordLabel": "run result", "pinSelected": "Pin Selected", "customRunOfTests": "Custom Test Run of {count} Tests", "columns": { "runId": "RUN ID", "target": "Target", "trigger": "Trigger", "status": "Status", "result": "Result", "startTime": "Start Time", "duration": "Duration", "totalTests": "Total Tests", "failedTests": "Failed Tests" }, "statusLabels": { "running": "Running", "finished": "Finished", "waitingRerun": "Waiting Rerun", "skipped": "Skipped", "notStarted": "Not Started" }, "empty": { "filteredTitle": "No results match your filters", "filteredDescription": "Try adjusting your Result or Trigger filters to see more results.", "title": "No results yet", "descriptionLine1": "Runs appear here after your tests are executed.", "descriptionLine2": "Each result represents a single run, showing whether tests passed or failed, how long they took, and detailed logs, videos, and traces to help you debug issues.", "documentation": "Documentation" } }, "page": { "filterDefaultResult": "Result", "filterDefaultTrigger": "Trigger", "filterDefaultSchedule": "Schedule", "filterDefaultContainsSuite": "Contains suite", "valueWithMore": "{value} + {count} more", "results": { "passed": "Passed", "failed": "Failed", "pending": "Pending", "queued": "Queued", "skipped": "Skipped" }, "triggers": { "API": "API", "Manual": "Manual", "Scheduled": "Scheduled", "GITHUB_ACTION": "GitHub Action", "Webhook": "Webhook", "Automation": "Automation" }, "clear": "Clear", "noSchedulesAvailable": "No schedules available", "loading": "Loading...", "noTestSuitesAvailable": "No test suites available", "clearAllFilters": "Clear all filters", "clearShort": "Clear", "showingResultsFrom": "Showing results from {dateRange}", "failedToLoadRunResults": "Failed to load run results" }, "detailPage": { "pageTitle": "{trigger} Run - {target}", "unnamedSuite": "Unnamed Suite", "testSuiteWithId": "Test Suite {id}", "loadingTitle": "Loading run results", "loadingSubtitle": "Fetching your test run results...", "failedToLoadRunResult": "Failed to load run result", "runResultNotFound": "Run result not found", "returnToRunResults": "Return to Run Results", "failedTestsTitle": "Failed Tests", "preflightTestTitle": "Preflight Test", "dispatchMainNotice": "Preflight passed, but main tests have not been dispatched.", "dispatchMainError": "Failed to dispatch main tests. Please try again.", "dispatchMainButton": "Dispatch Main Tests", "testCasesTitle": "Test Cases" } };
|
|
198315
|
+
const RunResults = { "failedToLoadUserInfo": "Failed to load some user info, showing as unknown.", "runUrlCopied": "Run URL copied to clipboard", "failedToCopyUrl": "Failed to copy URL", "reAnalysisQueued": "Re-analysis queued", "failedToTriggerReAnalysis": "Failed to trigger re-analysis", "reAnalysisMessage": "The next run of this test will trigger a fresh failure analysis.", "failedToUpdateHardCaseStatus": "Failed to update hard case status", "overview": { "failedToUpdateFingerprint": "Failed to update fingerprint", "failedToQueueReAnalysis": "Failed to queue re-analysis", "failedToUpdateHardCaseSteps": "Failed to update hard case steps", "stepMarkedAsHardCase": "Step marked as hard case", "stepRemovedFromHardCases": "Step removed from hard cases", "runType": { "runWithoutFix": "Run Without Fix", "run": "Run", "fixRun": "Fix Run", "runWithFix": "Run With Fix", "refixRun": "Refix Run" }, "runLabel": { "single": "{type} ({outcome})", "first": "First {type} ({outcome})", "final": "Final {type} ({outcome})", "indexed": "{type} {index} ({outcome})" }, "outcome": { "passed": "Passed", "failed": "Failed", "error": "Error", "unknown": "Unknown" }, "agentFixRunLabel": "Agent Fix Run ({outcome})", "finalRunLabel": "Final Run ({outcome})", "firstRunLabel": "First Run ({outcome})", "executedWithAiModifiedFlow": "This test was executed with an AI-modified test flow.", "autoFixTitle": "Auto Fix", "reusedFailurePatternMessage": "Same failure pattern as a previous run - analysis was skipped. Edit the test case to trigger a new analysis.", "reAnalysisQueuedShort": "Re-analysis queued", "reAnalyzeNextRun": "Re-analyze next run", "viewOriginalAnalysis": "View original analysis", "jumpToFailedStep": "Jump to failed step", "autoRevertedMessage": "Due to the run failure the original test fix was auto-reverted.", "dismissedModal": "{count, plural, one {# modal dismissed} other {# modals dismissed}}", "mainSection": "Main", "teardownSection": "Teardown", "noTestFlow": "No test flow", "noTestStepsDefined": "No test steps defined for this test case.", "noTestResultData": "No test result data available for this run.", "noStepsAvailable": "No steps available" }, "modal": { "breadcrumb": { "results": "Results", "runWithId": "Run {runId}" }, "tabs": { "overview": "Overview", "video": "Video", "trace": "Trace", "logs": "Logs", "context": "Context", "console": "Console", "artifacts": "Artifacts" }, "properties": { "collapse": "Collapse properties", "expand": "Expand properties" }, "sidebar": { "hideTestCases": "Hide test cases", "hideRunHistory": "Hide run history", "showTestCases": "Show test cases", "showRunHistory": "Show run history" } }, "propertiesSidebar": { "title": "Properties", "copyTestRunUrl": "Copy test run URL", "status": "Status", "schedule": "Schedule", "view": "View", "testCase": "Test Case", "parameterSet": "Parameter Set", "testRun": "Test Run", "startTime": "Start Time", "duration": "Duration", "environment": "Environment", "testAccount": "Test Account", "platform": "Platform", "device": "Device", "notAvailable": "N/A", "desktopChrome": "Desktop Chrome", "flaky": "Flaky", "aiAnalysisRan": "AI analysis ran and a fix was generated", "previousAiFixApplied": "Previous AI fix is applied", "passedWithAiFix": "Passed with AI-fixed test flow", "result": { "passed": "Passed", "failed": "Failed", "pending": "Pending", "queued": "Queued", "skipped": "Skipped", "notStarted": "Not Started" } }, "overviewStep": { "startLabel": "Start:", "durationLabel": "Duration:", "autoHealed": "Auto Healed", "autoDismissedModal": "Auto Dismissed Modal", "markAsHardCase": "Mark as hard case", "removeFromHardCases": "Remove from hard cases", "attemptCount": "Attempt {current} / {total}", "screenshot": "Screenshot", "screenshotPreview": "Screenshot preview" }, "fixAcceptedTitle": "Fix accepted", "fixAcceptedMessage": "The AI fix has been applied to the test case.", "fixRejectedTitle": "Fix rejected", "fixRejectedMessageShort": "The AI fix has been rejected and will not be used in future runs.", "fixRejectedMessageLong": "The AI fix has been rejected and failure analysis has been disabled for this test case.", "noTestCaseResultForSummary": "No test case result available for AI summary generation", "aiSummaryGeneratedSuccessfully": "AI summary generated successfully", "testSuiteUrlCopied": "Test suite URL copied to clipboard", "verificationRunViewer": { "title": "Verification Runs", "attempt": "Attempt {attempt}", "watchVideo": "Watch video", "openTrace": "Open trace", "modified": "Modified", "stepScreenshotAlt": "Step {stepId} screenshot", "noScreenshotAvailable": "No screenshot available" }, "contextMenu": { "unpin": "Unpin", "pinToTop": "Pin to top", "copyLink": "Copy link" }, "videoModal": { "title": "Test Recording", "videoTagNotSupported": "Your browser does not support the video tag.", "noVideo": "No video recording available" }, "stats": { "passRate": "Pass Rate", "duration": "Duration", "trigger": "Trigger" }, "summary": { "totalPassed": "Total Passed", "totalFailed": "Total Failed", "notExecuted": "Not Executed" }, "header": { "manualRun": "Manual run", "apiRun": "API run", "scheduledRun": "Scheduled run", "testRun": "Test run", "runOfTarget": "{triggerPrefix} of {target}", "runOfTests": "{triggerPrefix} of {count} Tests", "duration": "Duration: {duration}", "view": "View: {viewName}", "viewWithTestCount": "View: {viewName} ({count} tests)" }, "failBadge": { "noTestsRun": "No tests run", "allTestsPassed": "All tests passed", "testsFailed": "{failedCount} / {totalCount} tests failed" }, "sidebar": { "runDetails": "Run Details", "duration": "Duration: {duration}", "started": "Started {time}", "testResults": "Test Results", "testSuites": "Test Suites", "testCases": "Test Cases" }, "aiSummary": { "noDebugInfo": "No debug information available", "copy": "Copy", "copied": "Copied", "titleLabel": "Title:", "descriptionLabel": "Description:", "rootCauseLabel": "Root Cause:", "suggestedTagsLabel": "Suggested Tags:", "tabs": { "summary": "Summary", "testCaseResult": "TestCaseResult", "testCase": "Test Case", "fullReport": "FullReport", "enrichedTestFlow": "Enriched Test Flow", "formattedInput": "Formatted Input", "llmRequest": "LLM Request", "llmPrompt": "LLM Prompt", "llmResponse": "LLM Response" } }, "historyChart": { "title": "Test Plan Run History", "testsCount": "{count} tests", "passed": "Passed", "failed": "Failed" }, "summaryChart": { "title": "Test Results Distribution", "passRate": "Pass Rate: {rate}%", "testsCount": "{count} tests", "totalTests": "Total Tests", "passed": "Passed", "failed": "Failed" }, "resultItem": { "notStarted": "Not Started", "unnamedTest": "Unnamed Test", "goToTestCase": "Go to Test Case", "viewVideo": "View Video", "viewLogs": "View Logs" }, "resultList": { "runLabel": "RUN-{runId}", "goToTestSuite": "Go to Test Suite", "recordLabel": "run result", "pinSelected": "Pin Selected", "customRunOfTests": "Custom Test Run of {count} Tests", "columns": { "runId": "RUN ID", "target": "Target", "trigger": "Trigger", "status": "Status", "result": "Result", "startTime": "Start Time", "duration": "Duration", "totalTests": "Total Tests", "failedTests": "Failed Tests" }, "statusLabels": { "running": "Running", "finished": "Finished", "waitingRerun": "Waiting Rerun", "skipped": "Skipped", "notStarted": "Not Started" }, "empty": { "filteredTitle": "No results match your filters", "filteredDescription": "Try adjusting your Result or Trigger filters to see more results.", "title": "No results yet", "descriptionLine1": "Runs appear here after your tests are executed.", "descriptionLine2": "Each result represents a single run, showing whether tests passed or failed, how long they took, and detailed logs, videos, and traces to help you debug issues.", "documentation": "Documentation" } }, "page": { "filterDefaultResult": "Result", "filterDefaultTrigger": "Trigger", "filterDefaultSchedule": "Schedule", "filterDefaultContainsSuite": "Contains suite", "valueWithMore": "{value} + {count} more", "results": { "passed": "Passed", "failed": "Failed", "pending": "Pending", "queued": "Queued", "skipped": "Skipped" }, "triggers": { "API": "API", "Manual": "Manual", "Scheduled": "Scheduled", "GITHUB_ACTION": "GitHub Action", "Webhook": "Webhook", "Automation": "Automation", "Local": "Local" }, "clear": "Clear", "noSchedulesAvailable": "No schedules available", "loading": "Loading...", "noTestSuitesAvailable": "No test suites available", "clearAllFilters": "Clear all filters", "clearShort": "Clear", "showingResultsFrom": "Showing results from {dateRange}", "failedToLoadRunResults": "Failed to load run results" }, "detailPage": { "pageTitle": "{trigger} Run - {target}", "unnamedSuite": "Unnamed Suite", "testSuiteWithId": "Test Suite {id}", "loadingTitle": "Loading run results", "loadingSubtitle": "Fetching your test run results...", "failedToLoadRunResult": "Failed to load run result", "runResultNotFound": "Run result not found", "returnToRunResults": "Return to Run Results", "failedTestsTitle": "Failed Tests", "preflightTestTitle": "Preflight Test", "dispatchMainNotice": "Preflight passed, but main tests have not been dispatched.", "dispatchMainError": "Failed to dispatch main tests. Please try again.", "dispatchMainButton": "Dispatch Main Tests", "testCasesTitle": "Test Cases" } };
|
|
198314
198316
|
const ReusableGroups = { "contextMenu": { "edit": "Edit", "delete": "Delete" }, "editorDrawer": { "saveBlockedTitle": "Save Blocked", "saveBlockedMessage": "Templates can't link other templates. Use Copy instead of Link for nested templates.", "successTitle": "Success", "templateCreated": "Template created successfully", "templateSaved": "Template saved successfully", "errorTitle": "Error", "failedToCreate": "Failed to create template", "failedToSave": "Failed to save template", "validationErrorTitle": "Validation Error", "templateNameRequired": "Template name is required", "updateTemplateTitle": "Update template?", "updateTemplatePrompt": "This template is used by {usageCount} {usageLabel}. Saving changes will affect all of them. Are you sure you want to continue?", "testCaseSingular": "test case", "testCasePlural": "test cases", "save": "Save", "cancel": "Cancel", "unsavedChangesTitle": "Unsaved changes", "unsavedChangesPrompt": "You have unsaved changes. Are you sure you want to close?", "close": "Close", "templateNamePlaceholder": "Template name", "usedBy": "(Used by {count} {unit})", "testSingular": "test", "testPlural": "tests", "descriptionPlaceholder": "Add a description...", "create": "Create" }, "list": { "columnTemplateId": "TMPL ID", "columnName": "Name", "columnDescription": "Description", "columnUsedBy": "Used By", "columnCreatedBy": "Created By", "columnCreated": "Created", "columnUpdated": "Updated", "edit": "Edit", "delete": "Delete", "cannotDeleteSingle": "Cannot delete: This template is being used by test cases", "cannotDeleteMultiple": "Cannot delete: Some selected templates are being used by test cases", "deleteTemplatesTitle": "Delete {noun}?", "templates": "templates", "template": "template", "deleteTemplatesPrompt": "Are you sure you want to delete {count} template{suffix}? This action cannot be undone.", "cancel": "Cancel", "deleteSelected": "Delete Selected", "emptyTitle": "Templates", "emptyDescription1": "Templates let you turn common test workflows into reusable building blocks.", "emptyDescription2": "Create a template once, use it across multiple tests, and keep everything in sync when it changes. They are perfect for shared flows like login, setup, cleanup, or any repeated logic your team relies on.", "createFirstTemplate": "Create your first template", "documentation": "Documentation" }, "page": { "deleteTemplateTitle": "Delete template?", "deleteTemplateConfirm": 'Are you sure you want to delete "{name}"? This action cannot be undone.', "deleteAction": "Delete", "cancelAction": "Cancel", "deleteSuccessTitle": "Success", "templateDeletedSuccessfully": "Template deleted successfully", "deleteErrorTitle": "Error", "failedToDeleteTemplate": "Failed to delete template", "failedToLoadTemplates": "Failed to load templates", "retry": "Retry" }, "detailPage": { "failedToLoadTemplate": "Failed to load template", "retry": "Retry", "titleTemplate": "Template", "save": "Save", "nameLabel": "Name", "namePlaceholder": "Enter name", "descriptionLabel": "Description", "descriptionPlaceholder": "Enter description", "created": "Created", "updated": "Updated" } };
|
|
198315
198317
|
const Settings = /* @__PURE__ */ JSON.parse(`{"environments":{"nameAndUrlRequired":"Name and URL are required","createdSuccessfully":"Environment created successfully","failedToCreate":"Failed to create environment","deletedSuccessfully":"Environment deleted successfully","failedToDelete":"Failed to delete environment","updatedSuccessfully":"Environment updated successfully","failedToUpdate":"Failed to update environment","title":"Environments","description":"Add domain URLs to define where your tests run, such as production or staging.","environmentNamePlaceholder":"Environment name","domainUrlPlaceholder":"Domain URL","addEnvironment":"Add Environment"},"browserSettings":{"title":"Browser Defaults","description":"Set default browser locale and HTTP headers for each environment. Test-case settings take precedence when configured.","columnEnvironment":"Environment","columnLanguage":"Language","columnTimezone":"Timezone","columnHeaders":"HTTP Headers","noLanguage":"Default","noTimezone":"Default","noHeaders":"None","headersCount":"{count} header{plural}","editTitle":"Browser Defaults — {name}","language":"Browser Language","languagePlaceholder":"Default (en-US)","timezone":"Browser Timezone","timezonePlaceholder":"Default (America/Los_Angeles)","extraHeaders":"Extra HTTP Headers","extraHeadersTooltip":"Custom HTTP headers sent with every browser request for this environment. Test-case headers override these per key.","extraHeadersAddButton":"Add Header","extraHeadersNamePlaceholder":"Header name","extraHeadersValuePlaceholder":"Header value","extraHeadersColumnName":"Name","extraHeadersColumnValue":"Value","extraHeadersNameRequired":"Header name is required","extraHeadersNameInvalid":"Invalid header name — use letters, digits, hyphens, or underscores only","extraHeadersNameDuplicate":"Header name already exists","savedSuccessfully":"Browser defaults saved","failedToSave":"Failed to save browser defaults","clearedSuccessfully":"Browser defaults cleared","failedToClear":"Failed to clear browser defaults","clearButton":"Clear","clearConfirmTitle":"Clear Browser Defaults","clearConfirmMessage":"Remove all browser default settings for {name}?","edit":"Edit"},"apiTokens":{"copiedTitle":"Copied!","copiedMessage":"API token copied to clipboard","pageTitle":"API Tokens","description":"Programmatic access to Shiplight for CI/CD and external integrations. Generate and manage API tokens for automation.","docs":"Docs ↗","copyToken":"Copy token","createToken":"Create Token","edit":"Edit","save":"Save","delete":"Delete","deleteConfirmTitle":"Delete API Token","deleteConfirmMessageNamed":"Are you sure you want to delete the API token \\"{name}\\"? This action cannot be undone and will immediately invalidate the token.","deleteConfirmMessageUnnamed":"Are you sure you want to delete this API token? This action cannot be undone and will immediately invalidate the token.","fields":{"name":"Name","namePlaceholder":"Enter token name","token":"Token","created":"Created"},"emptyMessage":"No API tokens found","searchPlaceholder":"Search tokens..."},"testAccounts":{"cacheClearedTitle":"Cache cleared successfully","failedToClearCacheTitle":"Failed to clear cache","errorClearingCacheTitle":"Error clearing cache","details":{"usernamePlaceholder":"Username","passwordPlaceholder":"Password","saving":"Saving...","saved":"Saved","failedToSave":"Failed to save"},"list":{"columns":{"id":"ID","username":"Username","loginHints":"Login Hints","status":"Status","availability":"Availability","created":"Created","lastTestResult":"Last Test Result"},"status":{"shared":"Shared","private":"Private","inUse":"In Use","available":"Available"},"notUsed":"Not Used","actions":{"edit":"Edit","clearCache":"Clear Cache","delete":"Delete"},"selectionActions":{"shareSelected":"Share Selected","deleteSelected":"Delete Selected"}},"deleteModal":{"title":"Confirm Deletion","inUseMessage":"This test account is in use and cannot be deleted. Please cancel the association first.","confirmMessage":"Are you sure you want to delete this test account? This action cannot be undone.","notifications":{"failedToCheckInUse":"Failed to check if test account is in use","deletedSuccessfully":"Test account deleted successfully","failedToDelete":"Failed to delete test account"}},"loginHintsConfiguration":{"toggleTitle":"Agent Login Hints (Optional)","desktop":"Desktop","mobile":"Mobile","additionalPromptLabel":"Additional Prompt","verificationHintLabel":"Verification Hint","desktopAdditionalPromptPlaceholder":"e.g., Click 'Skip intro', Accept cookies","desktopVerificationHintPlaceholder":"e.g., User avatar appears, 'Logout' visible","mobileAdditionalPromptPlaceholder":"e.g., Tap 'Skip intro', Accept cookies","mobileVerificationHintPlaceholder":"e.g., Profile icon visible in top-right","desktopAdditionalPromptDescription":"Specific actions or steps the AI agent should take during login on desktop","desktopVerificationHintDescription":"Visual elements that indicate successful login completion for AI verification on desktop","mobileAdditionalPromptDescription":"Specific actions or steps the AI agent should take during login on mobile","mobileVerificationHintDescription":"Visual elements that indicate successful login completion for AI verification on mobile","useAiVerificationForLoginCheckLabel":"Use AI verification hint for already-logged-in check","useAiVerificationForLoginCheckDescription":"When enabled, login pre-check uses verification hint with AI instead of cached login validation expressions"},"loginHintsDisplay":{"desktop":"Desktop","mobile":"Mobile","additionalPromptLabel":"Additional Prompt","verificationHintLabel":"Verification Hint","aiLoginPrecheckLabel":"AI Login Pre-check","enabled":"Enabled"},"totpConfig":{"invalidCode":"Invalid","secretKeyPlaceholder":"Enter TOTP secret key","generateOtpCode":"Generate OTP Code"},"editModal":{"titleEdit":"Edit Test Account","titleCreate":"Add New Test Account","scopeLabel":"Scope","scopePlaceholder":"Select scope","scopeDescriptionLocked":"Scope cannot be modified for test accounts already in use. Create a new test account in the desired scope if needed.","noEnvironmentsFound":"No environments found","usernameLabel":"Username","usernamePlaceholder":"Test account username","passwordLabel":"Password","passwordPlaceholder":"Test account password","oauthAccountLabel":"This is an OAuth account","oauthProviderPlaceholder":"Select OAuth provider","twoFactorLabel":"This account requires two-factor authentication","nameOptionalLabel":"Name (Optional)","nameOptionalPlaceholder":"A convenient name to help distinguish accounts","validation":{"requiredFields":"Username, password, and environment are required","oauthProviderRequired":"OAuth provider is required for OAuth accounts","totpSecretRequired":"TOTP secret key is required for two-factor authentication","emailSenderRequired":"Email sender (From field) is required for email extraction"},"notifications":{"createdSuccessfully":"Test account created successfully","updatedSuccessfully":"Test account updated successfully","failedToCreate":"Failed to create test account","failedToUpdate":"Failed to update test account"},"emailExtraction":{"title":"Email Extraction","enable":"Enable email extraction for verification codes","methodLabel":"Extraction Method","methodPlaceholder":"Select method","methods":{"verificationCode":"Verification Code","activationLink":"Activation Link","custom":"Custom"},"forwardEmailLabel":"Forward Email","forwardEmailDescription":"Automatically generated forward email, remember to set up email forwarding to this email address","customPromptLabel":"Custom Prompt","customPromptPlaceholder":"Custom instructions for email content extraction","filtersTitle":"Email Filters","fromLabel":"From (required)","fromPlaceholder":"@example.com","subjectLabel":"Subject (optional)","subjectPlaceholder":"Verification Code","bodyContainsLabel":"Body Contains (optional)","bodyContainsPlaceholder":"Your verification code is"},"createButton":"Create Test Account","updateButton":"Update Test Account"},"cacheClearedMessage":"Cache cleared successfully for test account {username}","failedToClearCacheMessage":"Failed to clear cache for test account {username}","errorClearingCacheMessage":"Error clearing cache for test account {username}","environmentLabel":"Environment","columns":{"accountId":"ACCT ID","username":"Username","password":"Password","name":"Name","loginHints":"Login Hints","created":"Created"},"copied":"Copied!","copyUsername":"Copy username","clearCache":"Clear Cache","failedToLoad":"Failed to load test accounts","title":"Test Accounts","description":"Add accounts per environment for reliable authentication.","searchPlaceholder":"Search test accounts...","allEnvironments":"All Environments","allEnvironmentsDescription":"Show accounts from all environments","addTestAccount":"Add Test Account"},"forwardEmails":{"validationErrorTitle":"Validation Error","fieldsRequired":"Name, forward email and sender filter are required","deleteTitle":"Delete Forward Email Config","noVerificationEmailTitle":"No verification email found","confirmDeleteMessage":"Are you sure you want to delete this forward email config?","noVerificationEmailMessage":"Could not find a verification email. Please make sure you have started the forwarding setup in your email provider.","failedToFetchVerificationLink":"Failed to fetch verification link.","columns":{"name":"Name","forwardEmail":"Forward Email","senderFilter":"Sender Filter"},"actions":{"getVerificationLink":"Get forwarding verification link"},"title":"Forward Email Configurations","description":"Automatically read and extract content from emails in your tests, such as verification codes or magic links.","newConfiguration":"New Configuration","loading":"Loading forward email configurations","empty":"No forward email configurations yet","editConfigurationTitle":"Edit Forward Email Configuration","createConfigurationTitle":"Create Forward Email Configuration","form":{"configurationNameLabel":"Configuration Name","configurationNamePlaceholder":"Enter a name for this configuration","forwardEmailLabel":"Forward Email","forwardEmailDescription":"The email address to forward emails to, automatically generated, remember to set up email forwarding to this email address","filterFromEmailLabel":"Filter From Email","filterFromEmailPlaceholder":"Email address to filter by sender or domain like @example.com","update":"Update","create":"Create"},"verificationModal":{"title":"Forwarding Verification Link","description":"A verification email was found. Click the link below to confirm your email forwarding setup.","openLink":"Open Link"}},"labels":{"nameAndColorRequired":"Name and color are required","createdSuccessfully":"Label created successfully","failedToCreate":"Failed to create label","deletedSuccessfully":"Label deleted successfully","failedToDelete":"Failed to delete label","updatedSuccessfully":"Label updated successfully","failedToUpdate":"Failed to update label","columns":{"name":"Name","created":"Created","updated":"Updated"},"customColor":"Custom Color","colorPicker":{"saturation":"Saturation","hue":"Hue","alpha":"Alpha"},"title":"Labels","description":"Create and manage labels to categorize and filter your test cases.","labelNamePlaceholder":"Label name","addLabel":"Add Label","empty":{"search":"No labels match your search","default":"No labels found. Create your first label above."}},"members":{"failedToLoad":"Failed to load members","resendInvitation":"Resend invitation","failedToResendInvitation":"Failed to resend invitation","memberRoleUpdated":"Member role updated","failedToUpdateMemberRole":"Failed to update member role","suspendUserTitle":"Suspend User","failedToSuspendUser":"Failed to suspend user","failedToActivateUser":"Failed to activate user","cancelInvitationTitle":"Cancel Invitation","failedToCancelInvitation":"Failed to cancel invitation","removeMemberTitle":"Remove Member","failedToRemoveMember":"Failed to remove member","failedToUpdateSettings":"Failed to update settings","inviteModal":{"title":"Invite Member","emailLabel":"Email Address","emailPlaceholder":"colleague@example.com","roleLabel":"Role","sendInvitation":"Send Invitation","roles":{"member":"Member","admin":"Admin"},"errors":{"enterEmail":"Please enter an email address","enterValidEmail":"Please enter a valid email address","failedToSendInvitation":"Failed to send invitation"}},"notifications":{"invitedSuccessfully":"Successfully invited {email}","invitationResent":"Invitation resent to {email}","userSuspended":"User suspended for {email}","userActivated":"User activated for {email}","invitationCancelled":"Invitation cancelled for {email}","memberRemoved":"{email} removed from organization","domainAutoJoinEnabled":"Domain auto-join enabled","domainAutoJoinDisabled":"Domain auto-join disabled"},"confirmations":{"suspend":"Are you sure you want to suspend <strong>{email}</strong>? They will no longer be able to access the organization.","cancelInvitation":"Are you sure you want to cancel the invitation for <strong>{email}</strong>? This action cannot be undone.","removeMember":"Are you sure you want to remove <strong>{email}</strong> from the organization? This action cannot be undone."},"actions":{"suspendUser":"Suspend User","cancelInvitation":"Cancel Invitation","keepInvitation":"Keep Invitation","remove":"Remove","removeAdmin":"Remove Admin","makeAdmin":"Make Admin","activateUser":"Activate User"},"status":{"active":"Active","pending":"Pending","inactive":"Inactive","revoked":"Revoked"},"columns":{"member":"Member","role":"Role","status":"Status","joined":"Joined"},"you":"You","roles":{"admin":"Admin","member":"Member"},"invitedOn":"Invited {date}","title":"Members","description":"Invite and manage team members, assign roles, and control access to your organization.","inviteMember":"Invite Member","domainAutoJoin":{"title":"Domain Auto-Join","description":"Allow users with matching email domains to automatically join"},"counts":{"activeMembers":"{count, plural, one {# active member} other {# active members}}","pendingInvitations":"{count, plural, one {# pending invitation} other {# pending invitations}}"},"tabs":{"activeMembers":"Active Members ({count})","pendingInvitations":"Pending Invitations ({count})","inactiveMembers":"Inactive Members ({count})"},"search":{"activePlaceholder":"Search active members...","pendingPlaceholder":"Search pending invitations...","inactivePlaceholder":"Search inactive members..."}},"integrations":{"settingsModal":{"title":"Slack Settings","defaultStartingUrl":"Default Starting URL","defaultTestAccount":"Default Test Account"},"slack":{"description":"Connect Slack to receive test notifications and alerts in your team channels.","workspace":"Workspace","teamId":"Team ID","defaultChannel":"Default Channel","connect":"Connect Slack","revokeConfirm":"Are you sure you want to revoke the Slack integration? This will disable all Slack-related features.","connectedToChannel":"Connected to the Slack channel: {channel} (team: {team})","disconnect":"Disconnect","name":"Slack"},"title":"Integrations","description":"Connect external services to enhance your testing workflow","connected":"Connected","notConnected":"Not Connected","connectedBy":"Connected by","unknown":"Unknown","revokeAccess":"Revoke Access","comingSoonTitle":"More integrations coming soon","comingSoonDescription":"We are working on adding more integrations to help streamline your workflow.","comingSoonCta":"Coming Soon","errors":{"failedToCheckStatus":"Failed to check integration status","failedToRevoke":"Failed to revoke integration"},"linear":{"description":"Connect Linear to receive issue notifications and sync project data with your tests.","organization":"Organization","connect":"Connect Linear","revokeConfirm":"Are you sure you want to revoke the Linear integration? This will disable all Linear-related features.","name":"Linear"}},"testData":{"failedToFetch":"Failed to fetch test data","fileTooLargeTitle":"File Too Large","uploadedSuccessfully":"Test data uploaded successfully","updatedSuccessfully":"Test data updated successfully","deletedSuccessfully":"Test data deleted successfully","failedToDelete":"Failed to delete test data","downloadedSuccessfully":"Test data downloaded successfully","failedToDownload":"Failed to download test data","actions":{"download":"Download","update":"Update","delete":"Delete"},"title":"Test Data","description":"Use test data files like images, videos, CSVs, or documents to simulate real user workflows during test runs (Max size: {maxFileSizeMb}MB).","uploadFile":"Upload File","overwriteModal":{"title":"Overwrite Existing Test Data","message":"A file named \\"{fileName}\\" already exists. Do you want to overwrite it?","confirm":"Overwrite"},"deleteModal":{"title":"Delete Test Data","message":"Are you sure you want to delete \\"{name}\\"? This action cannot be undone.","warning":"Warning: This will also remove the test data from any test cases that are using it."},"table":{"fileId":"FILE ID","name":"Name","usedBy":"Used By","lastUpdated":"Last Updated"}},"variables":{"failedToFetch":"Failed to fetch variables","nameAndValueRequired":"Name and value are required","createdSuccessfully":"Variable created successfully","failedToCreate":"Failed to create variable","deletedSuccessfully":"Variable deleted successfully","failedToDelete":"Failed to delete variable","updatedSuccessfully":"Variable updated successfully","failedToUpdate":"Failed to update variable","globalLabel":"Global","environmentLabel":"Environment","columns":{"name":"Name","value":"Value","sensitive":"Sensitive"},"sensitiveYes":"Yes","sensitiveNo":"No","title":"Global Variables","description":"Variables store reusable values used across your tests and environments. Use them to keep tests flexible, configurable, and secure.","searchPlaceholder":"Search variables...","allEnvironments":"All Environments","allEnvironmentsDescription":"Show variables from all environments","globalDescription":"Available in all environments","addConstant":"Add Variable","addModal":{"title":"Add New Variable"},"editModal":{"title":"Edit Variable"},"updateConstant":"Update Variable","form":{"nameLabel":"Name","namePlaceholder":"Variable name","valueLabel":"Value","valuePlaceholder":"Variable value","sensitiveLabel":"Sensitive Data","sensitiveDescription":"Mark this variable as containing sensitive information (passwords, API keys, etc.)","scopeLabel":"Scope","scopePlaceholder":"Select scope"},"deleteModal":{"title":"Confirm Deletion","message":"Are you sure you want to delete this variable? This action cannot be undone."}},"autoFix":{"failedToUpdateSetting":"Failed to update setting","enabledMessage":"Auto fix on test failure enabled","disabledMessage":"Auto fix on test failure disabled","notAvailable":"This feature is not available.","title":"Auto Fix","runOnTestFailure":"Run on test failure","description":"Automatically analyze and fix failing tests using AI. Individual test cases can override this setting."},"environmentSelect":{"nameAndUrlRequired":"Environment name and URL are required","invalidUrlFormat":"Please enter a valid URL format","createdSuccessfully":"Environment created successfully","errorCreating":"An error occurred while creating environment","createNewEnvironment":"Create New Environment","nothingFound":"No environments found","environmentNameLabel":"Environment Name","environmentNamePlaceholder":"e.g., Production","environmentUrlLabel":"Environment URL","environmentUrlPlaceholder":"https://app.example.com","createButton":"Create Environment"},"notifications":{"title":"Notifications","pageDescription":"Set up Slack and webhook integrations to receive notifications about test results.","docs":"Docs ↗","loading":"Please wait...","errors":{"failedToFetchChannels":"Failed to fetch channels","failedToLoadWebhookEndpoints":"Failed to load webhook endpoints","failedToCreateChannel":"Failed to create channel","failedToDeleteChannel":"Failed to delete channel","invalidStateToken":"Invalid state token. Please try again.","failedToConnectSlack":"Failed to connect to Slack.","failedToConnectSlackRetry":"Failed to connect to Slack. Please try again.","connectedButFailedToSave":"Connected to Slack but failed to save settings. Please try again.","slackNotConfigured":"Slack integration is not properly configured. Please contact support.","failedToDisconnectSlack":"Failed to disconnect from Slack. Please try again.","failedToSaveWebhook":"Failed to save webhook endpoint. Please try again.","failedToDeleteWebhook":"Failed to delete webhook endpoint. Please try again.","failedToUpdateWebhook":"Failed to update webhook endpoint. Please try again.","failedToGenerateWebhookSecret":"Failed to generate webhook secret. Please try again."},"success":{"connectedSlack":"Successfully connected to Slack!","disconnectedSlack":"Successfully disconnected from Slack!","webhookUpdated":"Webhook endpoint updated successfully!","webhookCreated":"Webhook endpoint created successfully!","webhookDeleted":"Webhook endpoint deleted successfully!","webhookEnabled":"Webhook endpoint enabled!","webhookDisabled":"Webhook endpoint disabled!"},"slack":{"tab":"Slack","connectPopupTitle":"Connect to Slack","notConfigured":"Slack integration is not configured. Please contact support to enable this feature.","loadingChannels":"Loading Slack channels","sectionTitle":"Slack Notifications","sectionDescription":"Connect Slack channels to receive test notifications. Configure channels here, then subscribe to them in individual test plans.","connectChannel":"Connect Channel"},"webhooks":{"tab":"Webhooks","loadingEndpoints":"Loading webhook endpoints","sectionTitle":"Webhook Endpoints","sectionDescription":"Configure webhook endpoints to receive test notifications via HTTP POST. Create endpoints here, then subscribe to them in individual test plans.","addWebhook":"Add Webhook"}},"usage":{"title":"Usage Statistics","description":"Monitor your test execution usage and track performance metrics","loading":"Loading usage data...","errors":{"failedToLoadUsageData":"Failed to load usage data","failedToLoadBreakdownData":"Failed to load breakdown data"},"yesterdayRuns":"Yesterday Runs","thisMonthRuns":"This Month Runs","thisYearRuns":"This Year Runs","simpleReliableCounts":"Simple, reliable counts only","breakdownTitle":"Usage Breakdown","period":{"byDay":"By Day","byWeek":"By Week","byMonth":"By Month"},"exportCsv":"Export CSV","table":{"period":"Period","totalRuns":"Total Runs"}}}`);
|
|
198316
198318
|
const DeviceDisplay = { "device": "Device", "defaultBrowserConfig": "Default browser configuration", "screen": "Screen", "viewport": "Viewport", "scaleFactor": "Scale Factor", "type": "Type", "touchSupport": "Touch Support", "userAgent": "User Agent", "mobile": "Mobile", "desktop": "Desktop", "yes": "Yes", "no": "No" };
|
|
@@ -198393,4 +198395,4 @@ export {
|
|
|
198393
198395
|
We as W,
|
|
198394
198396
|
reactExports as r
|
|
198395
198397
|
};
|
|
198396
|
-
//# sourceMappingURL=index-
|
|
198398
|
+
//# sourceMappingURL=index-D0G607gU.js.map
|