From 249fc8475c1f44ca20ba353e1eb4aeabd6e63545 Mon Sep 17 00:00:00 2001 From: Guillaume Date: Tue, 26 Sep 2023 15:51:59 +0200 Subject: [PATCH] Update documentation for #221 --- .../auth-modal/auth-modal.component.html | 6 +- .../changelog-modal.component.html | 6 +- .../duplicate-modal.component.html | 6 +- .../editor-modal/editor-modal.component.html | 6 +- .../settings-modal.component.html | 6 +- .../templates-modal.component.html | 6 +- .../welcome-modal.component.html | 6 +- packages/desktop/test/libs/modals.ts | 2 +- packages/desktop/test/libs/routes.ts | 36 +++++++-- .../desktop/test/tools/documentation.spec.ts | 79 +++++++++++++++++++ 10 files changed, 146 insertions(+), 13 deletions(-) diff --git a/packages/desktop/src/renderer/app/components/modals/auth-modal/auth-modal.component.html b/packages/desktop/src/renderer/app/components/modals/auth-modal/auth-modal.component.html index 21faa7d60..3fcd482b4 100644 --- a/packages/desktop/src/renderer/app/components/modals/auth-modal/auth-modal.component.html +++ b/packages/desktop/src/renderer/app/components/modals/auth-modal/auth-modal.component.html @@ -42,7 +42,11 @@ diff --git a/packages/desktop/src/renderer/app/components/modals/changelog-modal/changelog-modal.component.html b/packages/desktop/src/renderer/app/components/modals/changelog-modal/changelog-modal.component.html index f3081343a..0626261e1 100644 --- a/packages/desktop/src/renderer/app/components/modals/changelog-modal/changelog-modal.component.html +++ b/packages/desktop/src/renderer/app/components/modals/changelog-modal/changelog-modal.component.html @@ -18,7 +18,11 @@ diff --git a/packages/desktop/src/renderer/app/components/modals/settings-modal/settings-modal.component.html b/packages/desktop/src/renderer/app/components/modals/settings-modal/settings-modal.component.html index a40c5d37a..e286af50b 100644 --- a/packages/desktop/src/renderer/app/components/modals/settings-modal/settings-modal.component.html +++ b/packages/desktop/src/renderer/app/components/modals/settings-modal/settings-modal.component.html @@ -271,7 +271,11 @@ diff --git a/packages/desktop/src/renderer/app/components/modals/templates-modal/templates-modal.component.html b/packages/desktop/src/renderer/app/components/modals/templates-modal/templates-modal.component.html index 73a48cc28..637865586 100644 --- a/packages/desktop/src/renderer/app/components/modals/templates-modal/templates-modal.component.html +++ b/packages/desktop/src/renderer/app/components/modals/templates-modal/templates-modal.component.html @@ -299,7 +299,11 @@

- diff --git a/packages/desktop/src/renderer/app/components/modals/welcome-modal/welcome-modal.component.html b/packages/desktop/src/renderer/app/components/modals/welcome-modal/welcome-modal.component.html index 21c12c6f9..6b9dd08c0 100644 --- a/packages/desktop/src/renderer/app/components/modals/welcome-modal/welcome-modal.component.html +++ b/packages/desktop/src/renderer/app/components/modals/welcome-modal/welcome-modal.component.html @@ -10,7 +10,11 @@

diff --git a/packages/desktop/test/libs/modals.ts b/packages/desktop/test/libs/modals.ts index 230ca2cbc..733d136b9 100644 --- a/packages/desktop/test/libs/modals.ts +++ b/packages/desktop/test/libs/modals.ts @@ -19,7 +19,7 @@ class Modals { } private get closeBtn(): ChainablePromiseElement { - return $('.modal-dialog .modal-footer button'); + return $('.modal-dialog .modal-footer button.modal-close'); } private get title(): ChainablePromiseElement { diff --git a/packages/desktop/test/libs/routes.ts b/packages/desktop/test/libs/routes.ts index 124a7fd01..79b1f44ad 100644 --- a/packages/desktop/test/libs/routes.ts +++ b/packages/desktop/test/libs/routes.ts @@ -22,6 +22,13 @@ class Routes { params: 5, request_number: 6 }; + private rulesOperatorsIndexes = { + equals: 1, + regex: 2, + regex_i: 3, + null: 4, + empty_array: 5 + }; private activeMenuEntrySelector = '.routes-menu .nav-item .nav-link.active'; public get bodyTypeToggle(): ChainablePromiseElement { @@ -107,6 +114,10 @@ class Routes { return $('#route-responses-menu #route-response-duplication-button'); } + public get routeResponseStatusDropdown(): ChainablePromiseElement { + return $('#status-code-dropdown'); + } + public get routeResponseDropdownlabel(): ChainablePromiseElement { return $('#route-responses-dropdown .dropdown-toggle-label'); } @@ -337,6 +348,10 @@ class Routes { await utils.assertDropdownValue('method', expected); } + public async setMethod(index: number) { + await utils.setDropdownValue('methods', index); + } + public async assertPath(expected: string) { expect(await this.pathInput.getValue()).toEqual(expected); } @@ -370,6 +385,10 @@ class Routes { await utils.assertDropdownValue('statusCode', expected); } + public async setRouteResponseStatusCode(statusIndex: number) { + await utils.setDropdownValue('status-code', statusIndex); + } + public async setFile(value: string): Promise { await utils.setElementValue(this.fileInput, value); } @@ -497,12 +516,19 @@ class Routes { ), rule.modifier ); - await utils.setElementValue( - $( - 'app-route-response-rules .rule-item:last-of-type .form-inline input[formcontrolname="value"]' - ), - rule.value + await utils.setDropdownValue( + `rules${lastRuleIndex}operator`, + this.rulesOperatorsIndexes[rule.operator] ); + + if (rule.operator !== 'null') { + await utils.setElementValue( + $( + 'app-route-response-rules .rule-item:last-of-type .form-inline input[formcontrolname="value"]' + ), + rule.value + ); + } } public async removeResponseRule(index: number) { diff --git a/packages/desktop/test/tools/documentation.spec.ts b/packages/desktop/test/tools/documentation.spec.ts index 5f6e96f7b..f17bf0fea 100644 --- a/packages/desktop/test/tools/documentation.spec.ts +++ b/packages/desktop/test/tools/documentation.spec.ts @@ -1615,6 +1615,9 @@ const documentationTopics: { // account for openai api call await browser.pause(20000); }, + postTasks: async () => { + await modals.close(); + }, get highlightedTarget() { return $('.modal-footer .ml-auto button:last-of-type'); }, @@ -1628,6 +1631,82 @@ const documentationTopics: { fileName: 'templates-generate-get-route.png' } ] + }, + { + enabled: true, + folder: 'route-responses/global-routes-with-rules', + screenshots: [ + { + tasks: async () => { + await routes.addHTTPRoute(); + await routes.setPath('*'); + await routes.setMethod(1); + + await routes.addHTTPRoute(); + await routes.setPath('users'); + + await routes.select(1); + }, + get highlightedTarget() { + return routes.getMenuItem(1); + }, + highlight: true, + highlightGaps: { top: 0, right: 0, bottom: 0, left: 0 }, + screenshotPosition: { left: 0, top: 0 }, + screeenshotGaps: { right: 300, bottom: 200 }, + fileName: 'create-wildcard-route.png' + }, + { + tasks: async () => { + await routes.toggleRouteResponseFallback(); + }, + get highlightedTarget() { + return routes.fallbackResponseBtn; + }, + highlight: true, + screenshotPosition: { right: 0 }, + highlightGaps: { top: 0, right: 0, bottom: 0, left: 0 }, + screeenshotGaps: { top: 20, bottom: 120, left: 960 }, + fileName: 'activate-fallback-mode.png' + }, + { + tasks: async () => { + // 401 + await routes.setRouteResponseStatusCode(30); + }, + get highlightedTarget() { + return routes.routeResponseStatusDropdown; + }, + get screenshotTarget() { + return routes.routeResponseDropdownlabel; + }, + highlight: true, + screenshotPosition: { right: 0 }, + highlightGaps: { top: 0, right: 0, bottom: 0, left: 0 }, + screeenshotGaps: { top: 40, bottom: 200, left: 100 }, + fileName: 'response-status-code-401.png' + }, + { + tasks: async () => { + await routes.switchTab('RULES'); + await routes.addResponseRule({ + target: 'header', + invert: false, + modifier: 'Authorization', + operator: 'null', + value: '' + }); + }, + get highlightedTarget() { + return routes.getResponseRule(1); + }, + highlight: true, + screenshotPosition: { right: 0 }, + highlightGaps: { top: 10, right: 5, bottom: 40, left: 10 }, + screeenshotGaps: { top: 200, bottom: 20, left: 20 }, + fileName: 'response-rule-header-null.png' + } + ] } ];