From 4bacad707bd300d6787a3c5f2ca41042379871cc Mon Sep 17 00:00:00 2001 From: Edmundo Ruiz Ghanem Date: Wed, 8 Jun 2022 14:44:46 -0400 Subject: [PATCH 1/7] Update frequency cell in connection table to return Manual when manual sync --- .../EntityTable/components/FrequencyCell.tsx | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/airbyte-webapp/src/components/EntityTable/components/FrequencyCell.tsx b/airbyte-webapp/src/components/EntityTable/components/FrequencyCell.tsx index c08ca846438b7..6a4784f1e7021 100644 --- a/airbyte-webapp/src/components/EntityTable/components/FrequencyCell.tsx +++ b/airbyte-webapp/src/components/EntityTable/components/FrequencyCell.tsx @@ -1,12 +1,11 @@ -import React from "react"; +import React, { useMemo } from "react"; import styled from "styled-components"; import FrequencyConfig from "config/FrequencyConfig.json"; +import { ConnectionSchedule } from "core/request/AirbyteClient"; import { equal } from "utils/objects"; -import { ConnectionSchedule } from "../../../core/request/AirbyteClient"; - -interface IProps { +interface FrequencyCellProps { value: ConnectionSchedule; enabled?: boolean; } @@ -15,9 +14,13 @@ const Content = styled.div<{ enabled?: boolean }>` color: ${({ theme, enabled }) => (!enabled ? theme.greyColor40 : "inherit")}; `; -const FrequencyCell: React.FC = ({ value, enabled }) => { - const cellText = FrequencyConfig.find((item) => equal(item.config, value)); - return {cellText?.text || ""}; +const FrequencyCell: React.FC = ({ value, enabled }) => { + const text = useMemo(() => { + const cellText = FrequencyConfig.find((item) => equal(item.config, value ?? null)); + return cellText?.text ?? ""; + }, [value]); + + return {text}; }; export default FrequencyCell; From 0ed1d3274028f0c3ea1ce51a967a8a18fbd5c2da Mon Sep 17 00:00:00 2001 From: Edmundo Ruiz Ghanem Date: Wed, 8 Jun 2022 16:08:56 -0400 Subject: [PATCH 2/7] Move frequency labels to en.json --- .../EntityTable/components/FrequencyCell.tsx | 18 +++++------- airbyte-webapp/src/locales/en.json | 5 ++++ .../Connection/ConnectionForm/formConfig.tsx | 28 +++++++++++-------- 3 files changed, 29 insertions(+), 22 deletions(-) diff --git a/airbyte-webapp/src/components/EntityTable/components/FrequencyCell.tsx b/airbyte-webapp/src/components/EntityTable/components/FrequencyCell.tsx index 6a4784f1e7021..e1df7f0a841e7 100644 --- a/airbyte-webapp/src/components/EntityTable/components/FrequencyCell.tsx +++ b/airbyte-webapp/src/components/EntityTable/components/FrequencyCell.tsx @@ -1,9 +1,8 @@ -import React, { useMemo } from "react"; +import React from "react"; +import { FormattedMessage } from "react-intl"; import styled from "styled-components"; -import FrequencyConfig from "config/FrequencyConfig.json"; import { ConnectionSchedule } from "core/request/AirbyteClient"; -import { equal } from "utils/objects"; interface FrequencyCellProps { value: ConnectionSchedule; @@ -14,13 +13,10 @@ const Content = styled.div<{ enabled?: boolean }>` color: ${({ theme, enabled }) => (!enabled ? theme.greyColor40 : "inherit")}; `; -const FrequencyCell: React.FC = ({ value, enabled }) => { - const text = useMemo(() => { - const cellText = FrequencyConfig.find((item) => equal(item.config, value ?? null)); - return cellText?.text ?? ""; - }, [value]); - - return {text}; -}; +const FrequencyCell: React.FC = ({ value, enabled }) => ( + + + +); export default FrequencyCell; diff --git a/airbyte-webapp/src/locales/en.json b/airbyte-webapp/src/locales/en.json index dd88174b0f9c5..0b9701adfc01a 100644 --- a/airbyte-webapp/src/locales/en.json +++ b/airbyte-webapp/src/locales/en.json @@ -504,6 +504,11 @@ "errorView.unknown": "Unknown", "errorView.unknownError": "Unknown error occurred", + "frequency.manual": "Manual", + "frequency.minutes": "{value} min", + "frequency.hour": "hour", + "frequency.hours": "{value, plural, one {# hour} other {# hours}}", + "ui.goBack": "Go back", "ui.input.showPassword": "Show password", "ui.input.hidePassword": "Hide password", diff --git a/airbyte-webapp/src/views/Connection/ConnectionForm/formConfig.tsx b/airbyte-webapp/src/views/Connection/ConnectionForm/formConfig.tsx index 368b51a53c303..5f0823c8af6c6 100644 --- a/airbyte-webapp/src/views/Connection/ConnectionForm/formConfig.tsx +++ b/airbyte-webapp/src/views/Connection/ConnectionForm/formConfig.tsx @@ -261,17 +261,23 @@ const useFrequencyDropdownData = (): DropDownRow.IDataItem[] => { () => FrequencyConfig.map((item) => ({ value: item.config, - label: - item.config === null - ? item.text - : formatMessage( - { - id: "form.every", - }, - { - value: item.simpleText || item.text, - } - ), + label: item.config + ? formatMessage( + { + id: "form.every", + }, + { + value: formatMessage( + { + id: `frequency.${ + item.config.timeUnit === "hours" && item.config.units === 1 ? "hour" : item.config.timeUnit + }`, + }, + { value: item.config?.units } + ), + } + ) + : formatMessage({ id: "frequency.manual" }), })), [formatMessage] ); From 02ee0e0b7089c683340de856caffaa2d9b3ac79a Mon Sep 17 00:00:00 2001 From: Edmundo Ruiz Ghanem Date: Wed, 8 Jun 2022 16:28:17 -0400 Subject: [PATCH 3/7] Update frequencyConfig text prop to type Add getFrequencyConfig utility to correctly find frequency configuration --- .../src/components/EntityTable/hooks.tsx | 8 +++---- .../src/config/FrequencyConfig.json | 23 +++++++++---------- airbyte-webapp/src/config/utils.ts | 6 +++++ .../src/hooks/services/useConnectionHook.tsx | 11 ++++----- .../ConnectionItemPage/ConnectionItemPage.tsx | 7 +++--- .../components/EnabledControl.tsx | 6 ++--- .../components/StatusMainInfo.tsx | 7 +++--- 7 files changed, 34 insertions(+), 34 deletions(-) create mode 100644 airbyte-webapp/src/config/utils.ts diff --git a/airbyte-webapp/src/components/EntityTable/hooks.tsx b/airbyte-webapp/src/components/EntityTable/hooks.tsx index 7d77fc0b1a80d..1398120b98c0e 100644 --- a/airbyte-webapp/src/components/EntityTable/hooks.tsx +++ b/airbyte-webapp/src/components/EntityTable/hooks.tsx @@ -1,4 +1,4 @@ -import FrequencyConfig from "config/FrequencyConfig.json"; +import { getFrequencyConfig } from "config/utils"; import { useAnalyticsService } from "hooks/services/Analytics/useAnalyticsService"; import { useSyncConnection, useUpdateConnection } from "hooks/services/useConnectionHook"; @@ -25,9 +25,7 @@ const useSyncActions = (): { status: connection.status === ConnectionStatus.active ? ConnectionStatus.inactive : ConnectionStatus.active, }); - const frequency = FrequencyConfig.find( - (item) => JSON.stringify(item.config) === JSON.stringify(connection.schedule) - ); + const frequency = getFrequencyConfig(connection.schedule); analyticsService.track("Source - Action", { action: connection.status === "active" ? "Disable connection" : "Reenable connection", @@ -35,7 +33,7 @@ const useSyncActions = (): { connector_source_id: connection.source?.sourceDefinitionId, connector_destination: connection.destination?.destinationName, connector_destination_definition_id: connection.destination?.destinationDefinitionId, - frequency: frequency?.text, + frequency: frequency?.type, }); }; diff --git a/airbyte-webapp/src/config/FrequencyConfig.json b/airbyte-webapp/src/config/FrequencyConfig.json index 7d7c8284541fc..491c96d876c41 100644 --- a/airbyte-webapp/src/config/FrequencyConfig.json +++ b/airbyte-webapp/src/config/FrequencyConfig.json @@ -1,74 +1,73 @@ [ { - "text": "manual", + "type": "manual", "config": null }, { - "text": "5 min", + "type": "5 min", "config": { "units": 5, "timeUnit": "minutes" } }, { - "text": "15 min", + "type": "15 min", "config": { "units": 15, "timeUnit": "minutes" } }, { - "text": "30 min", + "type": "30 min", "config": { "units": 30, "timeUnit": "minutes" } }, { - "text": "1 hour", - "simpleText": "hour", + "type": "1 hour", "config": { "units": 1, "timeUnit": "hours" } }, { - "text": "2 hours", + "type": "2 hours", "config": { "units": 2, "timeUnit": "hours" } }, { - "text": "3 hours", + "type": "3 hours", "config": { "units": 3, "timeUnit": "hours" } }, { - "text": "6 hours", + "type": "6 hours", "config": { "units": 6, "timeUnit": "hours" } }, { - "text": "8 hours", + "type": "8 hours", "config": { "units": 8, "timeUnit": "hours" } }, { - "text": "12 hours", + "type": "12 hours", "config": { "units": 12, "timeUnit": "hours" } }, { - "text": "24 hours", + "type": "24 hours", "config": { "units": 24, "timeUnit": "hours" diff --git a/airbyte-webapp/src/config/utils.ts b/airbyte-webapp/src/config/utils.ts new file mode 100644 index 0000000000000..d15f084bb1bed --- /dev/null +++ b/airbyte-webapp/src/config/utils.ts @@ -0,0 +1,6 @@ +import FrequencyConfig from "config/FrequencyConfig.json"; +import { ConnectionSchedule } from "core/request/AirbyteClient"; +import { equal } from "utils/objects"; + +export const getFrequencyConfig = (schedule?: ConnectionSchedule) => + FrequencyConfig.find((item) => (!schedule && !item) || equal(item.config, schedule)); diff --git a/airbyte-webapp/src/hooks/services/useConnectionHook.tsx b/airbyte-webapp/src/hooks/services/useConnectionHook.tsx index 877fea0ac1d3f..33c8b99575e00 100644 --- a/airbyte-webapp/src/hooks/services/useConnectionHook.tsx +++ b/airbyte-webapp/src/hooks/services/useConnectionHook.tsx @@ -1,12 +1,11 @@ import { QueryClient, useMutation, useQueryClient } from "react-query"; -import FrequencyConfig from "config/FrequencyConfig.json"; +import { getFrequencyConfig } from "config/utils"; import { SyncSchema } from "core/domain/catalog"; import { WebBackendConnectionService } from "core/domain/connection"; import { ConnectionService } from "core/domain/connection/ConnectionService"; import { useAnalyticsService } from "hooks/services/Analytics/useAnalyticsService"; import { useInitService } from "services/useInitService"; -import { equal } from "utils/objects"; import { useConfig } from "../../config"; import { @@ -91,7 +90,7 @@ export const useSyncConnection = () => { const analyticsService = useAnalyticsService(); return useMutation((connection: WebBackendConnectionRead) => { - const frequency = FrequencyConfig.find((item) => equal(item.config, connection.schedule)); + const frequency = getFrequencyConfig(connection.schedule); analyticsService.track("Source - Action", { action: "Full refresh sync", @@ -99,7 +98,7 @@ export const useSyncConnection = () => { connector_source_id: connection.source?.sourceDefinitionId, connector_destination: connection.destination?.name, connector_destination_definition_id: connection.destination?.destinationDefinitionId, - frequency: frequency?.text, + frequency: frequency?.type, }); return service.sync(connection.connectionId); @@ -142,11 +141,11 @@ const useCreateConnection = () => { const enabledStreams = values.syncCatalog.streams.filter((stream) => stream.config?.selected).length; - const frequencyData = FrequencyConfig.find((item) => equal(item.config, values.schedule)); + const frequencyData = getFrequencyConfig(values.schedule); analyticsService.track("New Connection - Action", { action: "Set up connection", - frequency: frequencyData?.text, + frequency: frequencyData?.type, connector_source_definition: source?.sourceName, connector_source_definition_id: sourceDefinition?.sourceDefinitionId, connector_destination_definition: destination?.destinationName, diff --git a/airbyte-webapp/src/pages/ConnectionPage/pages/ConnectionItemPage/ConnectionItemPage.tsx b/airbyte-webapp/src/pages/ConnectionPage/pages/ConnectionItemPage/ConnectionItemPage.tsx index 88fd7877e7c60..474e01c05a209 100644 --- a/airbyte-webapp/src/pages/ConnectionPage/pages/ConnectionItemPage/ConnectionItemPage.tsx +++ b/airbyte-webapp/src/pages/ConnectionPage/pages/ConnectionItemPage/ConnectionItemPage.tsx @@ -5,12 +5,11 @@ import { LoadingPage, MainPageWithScroll } from "components"; import { AlertBanner } from "components/base/Banner/AlertBanner"; import HeadTitle from "components/HeadTitle"; -import FrequencyConfig from "config/FrequencyConfig.json"; +import { getFrequencyConfig } from "config/utils"; import { ConnectionStatus } from "core/request/AirbyteClient"; import { useAnalyticsService } from "hooks/services/Analytics/useAnalyticsService"; import { useGetConnection } from "hooks/services/useConnectionHook"; import TransformationView from "pages/ConnectionPage/pages/ConnectionItemPage/components/TransformationView"; -import { equal } from "utils/objects"; import ConnectionPageTitle from "./components/ConnectionPageTitle"; import { ReplicationView } from "./components/ReplicationView"; @@ -32,7 +31,7 @@ const ConnectionItemPage: React.FC = () => { const analyticsService = useAnalyticsService(); - const frequency = FrequencyConfig.find((item) => equal(item.config, connection.schedule)); + const frequency = getFrequencyConfig(connection.schedule); const onAfterSaveSchema = () => { analyticsService.track("Source - Action", { @@ -41,7 +40,7 @@ const ConnectionItemPage: React.FC = () => { connector_source_id: source.sourceDefinitionId, connector_destination: destination.destinationName, connector_destination_definition_id: destination.destinationDefinitionId, - frequency: frequency?.text, + frequency: frequency?.type, }); }; diff --git a/airbyte-webapp/src/pages/ConnectionPage/pages/ConnectionItemPage/components/EnabledControl.tsx b/airbyte-webapp/src/pages/ConnectionPage/pages/ConnectionItemPage/components/EnabledControl.tsx index d64ac1cab73eb..c4071048ef9fa 100644 --- a/airbyte-webapp/src/pages/ConnectionPage/pages/ConnectionItemPage/components/EnabledControl.tsx +++ b/airbyte-webapp/src/pages/ConnectionPage/pages/ConnectionItemPage/components/EnabledControl.tsx @@ -30,11 +30,11 @@ const Content = styled.div` interface EnabledControlProps { connection: WebBackendConnectionRead; disabled?: boolean; - frequencyText?: string; + frequencyType?: string; onStatusUpdating?: (updating: boolean) => void; } -const EnabledControl: React.FC = ({ connection, disabled, frequencyText, onStatusUpdating }) => { +const EnabledControl: React.FC = ({ connection, disabled, frequencyType, onStatusUpdating }) => { const { mutateAsync: updateConnection, isLoading } = useUpdateConnection(); const analyticsService = useAnalyticsService(); @@ -57,7 +57,7 @@ const EnabledControl: React.FC = ({ connection, disabled, f connector_source_id: connection.source?.sourceDefinitionId, connector_destination: connection.destination?.name, connector_destination_definition_id: connection.destination?.destinationDefinitionId, - frequency: frequencyText, + frequency: frequencyType, }); }; diff --git a/airbyte-webapp/src/pages/ConnectionPage/pages/ConnectionItemPage/components/StatusMainInfo.tsx b/airbyte-webapp/src/pages/ConnectionPage/pages/ConnectionItemPage/components/StatusMainInfo.tsx index 5d19a865060b3..b0e588d405772 100644 --- a/airbyte-webapp/src/pages/ConnectionPage/pages/ConnectionItemPage/components/StatusMainInfo.tsx +++ b/airbyte-webapp/src/pages/ConnectionPage/pages/ConnectionItemPage/components/StatusMainInfo.tsx @@ -6,13 +6,12 @@ import styled from "styled-components"; import ConnectorCard from "components/ConnectorCard"; -import FrequencyConfig from "config/FrequencyConfig.json"; +import { getFrequencyConfig } from "config/utils"; import { ConnectionStatus, SourceRead, DestinationRead, WebBackendConnectionRead } from "core/request/AirbyteClient"; import { FeatureItem, useFeatureService } from "hooks/services/Feature"; import { RoutePaths } from "pages/routePaths"; import { useDestinationDefinition } from "services/connector/DestinationDefinitionService"; import { useSourceDefinition } from "services/connector/SourceDefinitionService"; -import { equal } from "utils/objects"; import EnabledControl from "./EnabledControl"; @@ -55,7 +54,7 @@ export const StatusMainInfo: React.FC = ({ const destinationDefinition = useDestinationDefinition(destination.destinationDefinitionId); const allowSync = hasFeature(FeatureItem.AllowSync); - const frequency = FrequencyConfig.find((item) => equal(item.config, connection.schedule)); + const frequency = getFrequencyConfig(connection.schedule); const sourceConnectionPath = `../../${RoutePaths.Source}/${source.sourceId}`; const destinationConnectionPath = `../../${RoutePaths.Destination}/${destination.destinationId}`; @@ -84,7 +83,7 @@ export const StatusMainInfo: React.FC = ({ onStatusUpdating={onStatusUpdating} disabled={!allowSync} connection={connection} - frequencyText={frequency?.text} + frequencyType={frequency?.type} /> )} From 3eb8c2ac88714855cf1b7e7f1c9cb0a8b8ff46de Mon Sep 17 00:00:00 2001 From: Edmundo Ruiz Ghanem Date: Thu, 9 Jun 2022 15:08:26 -0400 Subject: [PATCH 4/7] Fix testid for createTestConnection dropdown --- airbyte-webapp-e2e-tests/cypress/commands/connection.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/airbyte-webapp-e2e-tests/cypress/commands/connection.ts b/airbyte-webapp-e2e-tests/cypress/commands/connection.ts index 9570ddcfe10aa..e642cfb6eb95a 100644 --- a/airbyte-webapp-e2e-tests/cypress/commands/connection.ts +++ b/airbyte-webapp-e2e-tests/cypress/commands/connection.ts @@ -17,7 +17,7 @@ export const createTestConnection = (sourceName: string, destinationName: string cy.get("div[data-testid='connectionName']").type("Connection name"); cy.get("div[data-testid='schedule']").click(); - cy.get("div[data-testid='manual']").click(); + cy.get("div[data-testid='Manual']").click(); cy.get("div[data-testid='namespaceDefinition']").click(); cy.get("div[data-testid='namespaceDefinition-source']").click(); From ff53a27930bcc5cb4cc06cce5ffb145f69101e76 Mon Sep 17 00:00:00 2001 From: Edmundo Ruiz Ghanem Date: Thu, 9 Jun 2022 15:16:13 -0400 Subject: [PATCH 5/7] Show manual in Replication settings dropdown when schedule is manual --- .../src/views/Connection/ConnectionForm/formConfig.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/airbyte-webapp/src/views/Connection/ConnectionForm/formConfig.tsx b/airbyte-webapp/src/views/Connection/ConnectionForm/formConfig.tsx index 5f0823c8af6c6..1c519beaef07f 100644 --- a/airbyte-webapp/src/views/Connection/ConnectionForm/formConfig.tsx +++ b/airbyte-webapp/src/views/Connection/ConnectionForm/formConfig.tsx @@ -234,7 +234,7 @@ const useInitialValues = ( const initialValues: FormikConnectionFormValues = { name: connection.name ?? `${connection.source.name} <> ${connection.destination.name}`, syncCatalog: initialSchema, - schedule: connection.schedule !== undefined ? connection.schedule : DEFAULT_SCHEDULE, + schedule: connection.connectionId ? connection.schedule ?? null : DEFAULT_SCHEDULE, prefix: connection.prefix || "", namespaceDefinition: connection.namespaceDefinition || NamespaceDefinitionType.source, namespaceFormat: connection.namespaceFormat ?? SOURCE_NAMESPACE_TAG, From 629102197af86a53e32df6ad4b672dfb6ddcd1b1 Mon Sep 17 00:00:00 2001 From: Edmundo Ruiz Ghanem Date: Fri, 10 Jun 2022 09:07:56 -0400 Subject: [PATCH 6/7] Split form.every string into minutes and seconds with pluralization Signed-off-by: Edmundo Ruiz Ghanem --- .../cypress/integration/connection.spec.ts | 2 +- airbyte-webapp/src/locales/en.json | 4 ++-- .../views/Connection/ConnectionForm/formConfig.tsx | 13 ++----------- 3 files changed, 5 insertions(+), 14 deletions(-) diff --git a/airbyte-webapp-e2e-tests/cypress/integration/connection.spec.ts b/airbyte-webapp-e2e-tests/cypress/integration/connection.spec.ts index 5a579ce27852b..57f3cffdb4d2e 100644 --- a/airbyte-webapp-e2e-tests/cypress/integration/connection.spec.ts +++ b/airbyte-webapp-e2e-tests/cypress/integration/connection.spec.ts @@ -28,7 +28,7 @@ describe("Connection main actions", () => { cy.get("div[data-id='replication-step']").click(); cy.get("div[data-testid='schedule']").click(); - cy.get("div[data-testid='Every 5 min']").click(); + cy.get("div[data-testid='Every 5 mins']").click(); cy.get("button[type=submit]").first().click(); cy.wait("@updateConnection"); cy.get("span[data-id='success-result']").should("exist"); diff --git a/airbyte-webapp/src/locales/en.json b/airbyte-webapp/src/locales/en.json index 0b9701adfc01a..4b05031e59f33 100644 --- a/airbyte-webapp/src/locales/en.json +++ b/airbyte-webapp/src/locales/en.json @@ -63,7 +63,8 @@ "form.destinationRetest": "Retest destination", "form.discardChanges": "Discard changes", "form.discardChangesConfirmation": "There are unsaved changes. Are you sure you want to discard your changes?", - "form.every": "Every {value}", + "form.every.minutes": "Every {value, plural, one {minute} other {# minutes}}", + "form.every.hours": "Every {value, plural, one {hour} other {# hours}}", "form.testingConnection": "Testing connection...", "form.successTests": "All connection tests passed!", "form.failedTests": "The connection tests failed.", @@ -506,7 +507,6 @@ "frequency.manual": "Manual", "frequency.minutes": "{value} min", - "frequency.hour": "hour", "frequency.hours": "{value, plural, one {# hour} other {# hours}}", "ui.goBack": "Go back", diff --git a/airbyte-webapp/src/views/Connection/ConnectionForm/formConfig.tsx b/airbyte-webapp/src/views/Connection/ConnectionForm/formConfig.tsx index 1c519beaef07f..781f87884d6ca 100644 --- a/airbyte-webapp/src/views/Connection/ConnectionForm/formConfig.tsx +++ b/airbyte-webapp/src/views/Connection/ConnectionForm/formConfig.tsx @@ -264,18 +264,9 @@ const useFrequencyDropdownData = (): DropDownRow.IDataItem[] => { label: item.config ? formatMessage( { - id: "form.every", + id: `form.every.${item.config.timeUnit}`, }, - { - value: formatMessage( - { - id: `frequency.${ - item.config.timeUnit === "hours" && item.config.units === 1 ? "hour" : item.config.timeUnit - }`, - }, - { value: item.config?.units } - ), - } + { value: item.config.units } ) : formatMessage({ id: "frequency.manual" }), })), From 27a27e50e37ceecffe51da54e9588fcb466ddfd6 Mon Sep 17 00:00:00 2001 From: Edmundo Ruiz Ghanem Date: Fri, 10 Jun 2022 10:48:41 -0400 Subject: [PATCH 7/7] Updte testid in update connection test --- airbyte-webapp-e2e-tests/cypress/integration/connection.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/airbyte-webapp-e2e-tests/cypress/integration/connection.spec.ts b/airbyte-webapp-e2e-tests/cypress/integration/connection.spec.ts index 57f3cffdb4d2e..d4a938505ff84 100644 --- a/airbyte-webapp-e2e-tests/cypress/integration/connection.spec.ts +++ b/airbyte-webapp-e2e-tests/cypress/integration/connection.spec.ts @@ -28,7 +28,7 @@ describe("Connection main actions", () => { cy.get("div[data-id='replication-step']").click(); cy.get("div[data-testid='schedule']").click(); - cy.get("div[data-testid='Every 5 mins']").click(); + cy.get("div[data-testid='Every 5 minutes']").click(); cy.get("button[type=submit]").first().click(); cy.wait("@updateConnection"); cy.get("span[data-id='success-result']").should("exist");