plum-e2e 2.5.6 → 2.5.7
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.
|
@@ -123,7 +123,9 @@
|
|
|
123
123
|
runnerConfig.update((c) => {
|
|
124
124
|
if (!v && c.selectedRunners.includes(BUILTIN_RUNNER_ID)) {
|
|
125
125
|
const others = c.selectedRunners.filter((r) => r !== BUILTIN_RUNNER_ID);
|
|
126
|
-
|
|
126
|
+
const fallback =
|
|
127
|
+
others.length > 0 ? others : availableRunners[0] ? [availableRunners[0].id] : [];
|
|
128
|
+
return { ...c, selectedRunners: fallback };
|
|
127
129
|
}
|
|
128
130
|
return c;
|
|
129
131
|
});
|
|
@@ -601,7 +603,7 @@
|
|
|
601
603
|
</button>
|
|
602
604
|
{#if runnersOpen}
|
|
603
605
|
<div class="dropdown-menu runners-menu" transition:fly={{ y: 6, duration: 130 }}>
|
|
604
|
-
{#if $builtInEnabled}
|
|
606
|
+
{#if $builtInEnabled || isRunnerSelected(BUILTIN_RUNNER_ID)}
|
|
605
607
|
<label class="runner-option">
|
|
606
608
|
<input
|
|
607
609
|
type="checkbox"
|
|
@@ -73,13 +73,24 @@ export function keywordClass(kw) {
|
|
|
73
73
|
return 'kw-and';
|
|
74
74
|
}
|
|
75
75
|
|
|
76
|
+
// Matches both verbose tags (@test-login-1, @suite-login) and the TC-/TS-
|
|
77
|
+
// displayId convention (@TC-001, @TS-001) used by default throughout the rest
|
|
78
|
+
// of the app (test case/suite prefixes, configurable in Settings).
|
|
79
|
+
function isSuiteTag(tag) {
|
|
80
|
+
return /suite/i.test(tag) || /^@ts-?\d+/i.test(tag);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
function isTestCaseTag(tag) {
|
|
84
|
+
return /^@test[\w-]*/i.test(tag) || /^@tc-?\d+/i.test(tag);
|
|
85
|
+
}
|
|
86
|
+
|
|
76
87
|
export function scenarioTestTag(scenario) {
|
|
77
|
-
return scenario.tags?.find(
|
|
88
|
+
return scenario.tags?.find(isTestCaseTag) ?? null;
|
|
78
89
|
}
|
|
79
90
|
|
|
80
91
|
export function featureSuiteTag(feature) {
|
|
81
92
|
for (const scenario of feature.scenarios ?? []) {
|
|
82
|
-
const suiteTag = scenario.tags?.find(
|
|
93
|
+
const suiteTag = scenario.tags?.find(isSuiteTag);
|
|
83
94
|
if (suiteTag) return suiteTag;
|
|
84
95
|
}
|
|
85
96
|
return null;
|
|
@@ -88,7 +99,7 @@ export function featureSuiteTag(feature) {
|
|
|
88
99
|
export function visibleTags(scenario) {
|
|
89
100
|
const testTag = scenarioTestTag(scenario);
|
|
90
101
|
if (testTag) return [testTag];
|
|
91
|
-
return (scenario.tags ?? []).filter((tag) =>
|
|
102
|
+
return (scenario.tags ?? []).filter((tag) => !isSuiteTag(tag));
|
|
92
103
|
}
|
|
93
104
|
|
|
94
105
|
const STATUS_RANK = { failed: 3, pending: 2, skipped: 1, passed: 0 };
|