+
{{ t("synthetics.createBrowserTest.buildManually") }}
@@ -857,7 +872,7 @@ function onClearResults() {
-
+
@@ -884,26 +899,36 @@ function onClearResults() {
>
{{ t("common.cancel") }}
+
{{ t("synthetics.createBrowserTest.continue") }}
-
-
-
- {{ t("synthetics.newCheck.updateCheck") }}
-
+
+
+ {{ t("synthetics.newCheck.saveAndContinue") }}
+
+
+ {{ t("synthetics.newCheck.saveAndExit") }}
+
+
@@ -923,7 +948,6 @@ function onClearResults() {
data-test="synthetics-create-back-to-journey-btn"
@click="currentStep = 1"
>
-
{{ t("common.goBack") }}
- {{
- props.editId
- ? t("synthetics.newCheck.updateCheck")
- : t("synthetics.newCheck.saveCheck")
- }}
-
+ {{ t("synthetics.newCheck.saveAndExit") }}
diff --git a/web/src/views/synthetics/CreateProtocolCheck.spec.ts b/web/src/views/synthetics/CreateProtocolCheck.spec.ts
index 348f656bc1..895c61cbf4 100644
--- a/web/src/views/synthetics/CreateProtocolCheck.spec.ts
+++ b/web/src/views/synthetics/CreateProtocolCheck.spec.ts
@@ -93,14 +93,18 @@ const baseStubs = {
template: '
',
props: ["title", "subtitle", "back"],
},
+ // Mirrors the real OButton slot contract (OButton.vue): only `icon-left`,
+ // default and `icon-right` are rendered. Any other slot name (e.g. `suffix`)
+ // is silently dropped — which is exactly the bug this stub must surface.
OButton: {
template:
- '',
+ '',
props: ["variant", "size", "disabled", "loading", "class", "iconLeft"],
inheritAttrs: true,
},
+ // Renders an identifiable marker per icon name so slot placement is assertable.
OIcon: {
- template: "",
+ template: '',
props: ["name", "size", "class"],
},
ODialog: {
@@ -185,6 +189,17 @@ describe("CreateProtocolCheck", () => {
expect(wrapper.find('[data-test="synthetics-create-save-btn"]').exists()).toBe(true);
});
+ // The footer actions are deliberately text-only — no leading or trailing
+ // icons. The stub renders OButton's real slots, so a stray icon would show.
+ it("should render the footer save button without an icon", async () => {
+ wrapper = mountPage("http");
+ await flushPromises();
+
+ const saveBtn = wrapper.find('[data-test="synthetics-create-save-btn"]');
+ expect(saveBtn.exists()).toBe(true);
+ expect(saveBtn.find('[data-test^="icon-"]').exists()).toBe(false);
+ });
+
it("should render the Beta badge in the page title", async () => {
wrapper = mountPage("http");
await flushPromises();
diff --git a/web/src/views/synthetics/CreateProtocolCheck.vue b/web/src/views/synthetics/CreateProtocolCheck.vue
index 5cc3fa5d95..2ec05e03cf 100644
--- a/web/src/views/synthetics/CreateProtocolCheck.vue
+++ b/web/src/views/synthetics/CreateProtocolCheck.vue
@@ -331,8 +331,7 @@ async function saveCheck() {
data-test="synthetics-create-save-btn"
@click="saveCheck"
>
- {{ editId ? t("synthetics.newCheck.updateCheck") : t("synthetics.newCheck.saveCheck") }}
-
+ {{ t("synthetics.newCheck.saveAndExit") }}