diff --git a/platforms/android/samples/CheckoutKitAndroidDemo/app/src/main/java/com/shopify/checkoutkit/androiddemo/CheckoutKitApp.kt b/platforms/android/samples/CheckoutKitAndroidDemo/app/src/main/java/com/shopify/checkoutkit/androiddemo/CheckoutKitApp.kt index 615d10950..4f70b9c3b 100644 --- a/platforms/android/samples/CheckoutKitAndroidDemo/app/src/main/java/com/shopify/checkoutkit/androiddemo/CheckoutKitApp.kt +++ b/platforms/android/samples/CheckoutKitAndroidDemo/app/src/main/java/com/shopify/checkoutkit/androiddemo/CheckoutKitApp.kt @@ -44,6 +44,7 @@ import androidx.compose.ui.unit.dp import androidx.navigation.compose.rememberNavController import com.shopify.checkoutkit.CheckoutAppearance import com.shopify.checkoutkit.ColorScheme +import com.shopify.checkoutkit.androiddemo.accessibility.AccessibilityIdentifiers import com.shopify.checkoutkit.androiddemo.cart.AppOwnedCheckoutSheet import com.shopify.checkoutkit.androiddemo.cart.CartViewModel import com.shopify.checkoutkit.androiddemo.cart.data.totalQuantity @@ -54,7 +55,6 @@ import com.shopify.checkoutkit.androiddemo.common.navigation.CheckoutKitNavHost import com.shopify.checkoutkit.androiddemo.common.navigation.Screen import com.shopify.checkoutkit.androiddemo.common.ui.theme.CheckoutKitSampleTheme import com.shopify.checkoutkit.androiddemo.e2e.E2ENavigationEffect -import com.shopify.checkoutkit.androiddemo.e2e.E2ETestIds import com.shopify.checkoutkit.androiddemo.logs.LogsViewModel import com.shopify.checkoutkit.androiddemo.settings.SettingsUiState import com.shopify.checkoutkit.androiddemo.settings.SettingsViewModel @@ -94,7 +94,7 @@ fun CheckoutKitAppRoot( modifier = Modifier .fillMaxSize() .semantics { testTagsAsResourceId = true } - .testTag(E2ETestIds.APP_READY), + .testTag(AccessibilityIdentifiers.APP_READY), ) { val navController = rememberNavController() diff --git a/platforms/android/samples/CheckoutKitAndroidDemo/app/src/main/java/com/shopify/checkoutkit/androiddemo/e2e/E2ETestIds.kt b/platforms/android/samples/CheckoutKitAndroidDemo/app/src/main/java/com/shopify/checkoutkit/androiddemo/accessibility/AccessibilityIdentifiers.kt similarity index 67% rename from platforms/android/samples/CheckoutKitAndroidDemo/app/src/main/java/com/shopify/checkoutkit/androiddemo/e2e/E2ETestIds.kt rename to platforms/android/samples/CheckoutKitAndroidDemo/app/src/main/java/com/shopify/checkoutkit/androiddemo/accessibility/AccessibilityIdentifiers.kt index 2b1b8686b..5f95af6bf 100644 --- a/platforms/android/samples/CheckoutKitAndroidDemo/app/src/main/java/com/shopify/checkoutkit/androiddemo/e2e/E2ETestIds.kt +++ b/platforms/android/samples/CheckoutKitAndroidDemo/app/src/main/java/com/shopify/checkoutkit/androiddemo/accessibility/AccessibilityIdentifiers.kt @@ -1,6 +1,6 @@ -package com.shopify.checkoutkit.androiddemo.e2e +package com.shopify.checkoutkit.androiddemo.accessibility -object E2ETestIds { +object AccessibilityIdentifiers { const val APP_READY = "checkout-kit-sample-ready" object Cart { diff --git a/platforms/android/samples/CheckoutKitAndroidDemo/app/src/main/java/com/shopify/checkoutkit/androiddemo/cart/CartView.kt b/platforms/android/samples/CheckoutKitAndroidDemo/app/src/main/java/com/shopify/checkoutkit/androiddemo/cart/CartView.kt index f95f13033..c36df4c9b 100644 --- a/platforms/android/samples/CheckoutKitAndroidDemo/app/src/main/java/com/shopify/checkoutkit/androiddemo/cart/CartView.kt +++ b/platforms/android/samples/CheckoutKitAndroidDemo/app/src/main/java/com/shopify/checkoutkit/androiddemo/cart/CartView.kt @@ -39,6 +39,7 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.navigation.NavController import com.shopify.checkoutkit.androiddemo.R +import com.shopify.checkoutkit.androiddemo.accessibility.AccessibilityIdentifiers import com.shopify.checkoutkit.androiddemo.cart.data.CartAmount import com.shopify.checkoutkit.androiddemo.cart.data.CartLine import com.shopify.checkoutkit.androiddemo.cart.data.CartState @@ -50,7 +51,6 @@ import com.shopify.checkoutkit.androiddemo.common.components.MoneyText import com.shopify.checkoutkit.androiddemo.common.components.ProgressIndicator import com.shopify.checkoutkit.androiddemo.common.ui.theme.horizontalPadding import com.shopify.checkoutkit.androiddemo.common.ui.theme.verticalPadding -import com.shopify.checkoutkit.androiddemo.e2e.E2ETestIds import com.shopify.checkoutkit.androiddemo.settings.data.CheckoutPresentationMode @Composable @@ -244,7 +244,7 @@ private fun CheckoutButton( Button( shape = RectangleShape, onClick = onClick, - modifier = Modifier.testTag(E2ETestIds.Cart.CHECKOUT_BUTTON), + modifier = Modifier.testTag(AccessibilityIdentifiers.Cart.CHECKOUT_BUTTON), ) { Column { Text( @@ -255,7 +255,7 @@ private fun CheckoutButton( modifier = Modifier .fillMaxWidth() .padding(vertical = 8.dp) - .testTag(E2ETestIds.Cart.CHECKOUT_READY) + .testTag(AccessibilityIdentifiers.Cart.CHECKOUT_READY) ) } } diff --git a/platforms/android/samples/CheckoutKitAndroidDemo/app/src/test/java/com/shopify/checkoutkit/androiddemo/accessibility/AccessibilityIdentifiersTest.kt b/platforms/android/samples/CheckoutKitAndroidDemo/app/src/test/java/com/shopify/checkoutkit/androiddemo/accessibility/AccessibilityIdentifiersTest.kt new file mode 100644 index 000000000..511a97005 --- /dev/null +++ b/platforms/android/samples/CheckoutKitAndroidDemo/app/src/test/java/com/shopify/checkoutkit/androiddemo/accessibility/AccessibilityIdentifiersTest.kt @@ -0,0 +1,17 @@ +package com.shopify.checkoutkit.androiddemo.accessibility + +import org.assertj.core.api.Assertions.assertThat +import org.junit.Test + +class AccessibilityIdentifiersTest { + @Test + fun `app ready marker matches the maestro flows`() { + assertThat(AccessibilityIdentifiers.APP_READY).isEqualTo("checkout-kit-sample-ready") + } + + @Test + fun `cart markers match the maestro flows`() { + assertThat(AccessibilityIdentifiers.Cart.CHECKOUT_READY).isEqualTo("cart-checkout-ready") + assertThat(AccessibilityIdentifiers.Cart.CHECKOUT_BUTTON).isEqualTo("checkout-button") + } +} diff --git a/platforms/android/samples/CheckoutKitAndroidDemo/app/src/test/java/com/shopify/checkoutkit/androiddemo/e2e/E2ETestIdsTest.kt b/platforms/android/samples/CheckoutKitAndroidDemo/app/src/test/java/com/shopify/checkoutkit/androiddemo/e2e/E2ETestIdsTest.kt deleted file mode 100644 index c1b7d1267..000000000 --- a/platforms/android/samples/CheckoutKitAndroidDemo/app/src/test/java/com/shopify/checkoutkit/androiddemo/e2e/E2ETestIdsTest.kt +++ /dev/null @@ -1,17 +0,0 @@ -package com.shopify.checkoutkit.androiddemo.e2e - -import org.assertj.core.api.Assertions.assertThat -import org.junit.Test - -class E2ETestIdsTest { - @Test - fun `app ready marker matches the maestro flows`() { - assertThat(E2ETestIds.APP_READY).isEqualTo("checkout-kit-sample-ready") - } - - @Test - fun `cart markers match the maestro flows`() { - assertThat(E2ETestIds.Cart.CHECKOUT_READY).isEqualTo("cart-checkout-ready") - assertThat(E2ETestIds.Cart.CHECKOUT_BUTTON).isEqualTo("checkout-button") - } -} diff --git a/platforms/react-native/sample/src/App.tsx b/platforms/react-native/sample/src/App.tsx index bf5fe84f6..c28eca034 100644 --- a/platforms/react-native/sample/src/App.tsx +++ b/platforms/react-native/sample/src/App.tsx @@ -51,7 +51,7 @@ import env from 'react-native-config'; import {createDebugLogger} from './utils'; import {useShopifyEventHandlers} from './hooks/useCheckoutEventHandlers'; import {useE2ECartBootstrap} from './e2e/useE2ECartBootstrap'; -import {E2ETestIds} from './e2e/testIds'; +import {AccessibilityIdentifiers} from './accessibility/accessibilityIdentifiers'; const log = createDebugLogger('ENV'); @@ -263,7 +263,9 @@ function CartIcon({onPress}: {onPress: () => void}) { const theme = useTheme(); return ( - + ); @@ -510,14 +512,14 @@ function Routes() { return ( + testID={linkingReady ? AccessibilityIdentifiers.appReady : undefined}> @@ -525,7 +527,7 @@ function Routes() { name="Cart" component={CartScreen} options={{ - tabBarButtonTestID: E2ETestIds.tabs.cart, + tabBarButtonTestID: AccessibilityIdentifiers.tabs.cart, tabBarIcon: createNavigationIcon('shopping-bag'), tabBarBadge: totalQuantity > 0 ? totalQuantity : undefined, }} @@ -535,7 +537,7 @@ function Routes() { component={AccountStackScreen} options={{ headerShown: false, - tabBarButtonTestID: E2ETestIds.tabs.account, + tabBarButtonTestID: AccessibilityIdentifiers.tabs.account, tabBarIcon: createNavigationIcon('user'), }} /> @@ -543,7 +545,7 @@ function Routes() { name="Settings" component={SettingsScreen} options={{ - tabBarButtonTestID: E2ETestIds.tabs.settings, + tabBarButtonTestID: AccessibilityIdentifiers.tabs.settings, tabBarIcon: createNavigationIcon('cog'), }} /> diff --git a/platforms/react-native/sample/src/accessibility/__tests__/accessibilityIdentifiers.test.ts b/platforms/react-native/sample/src/accessibility/__tests__/accessibilityIdentifiers.test.ts new file mode 100644 index 000000000..ada3448bf --- /dev/null +++ b/platforms/react-native/sample/src/accessibility/__tests__/accessibilityIdentifiers.test.ts @@ -0,0 +1,36 @@ +import {AccessibilityIdentifiers} from '../accessibilityIdentifiers'; + +describe('AccessibilityIdentifiers', () => { + it('pins selector values consumed by Maestro flows', () => { + expect(AccessibilityIdentifiers.appReady).toBe('checkout-kit-sample-ready'); + expect(AccessibilityIdentifiers.tabs.catalog).toBe('catalog-tab'); + expect(AccessibilityIdentifiers.tabs.cart).toBe('cart-tab'); + expect(AccessibilityIdentifiers.cart.checkoutReady).toBe( + 'cart-checkout-ready', + ); + expect(AccessibilityIdentifiers.cart.checkoutButton).toBe( + 'checkout-button', + ); + expect(AccessibilityIdentifiers.cart.emptyMessage).toBe( + 'cart-empty-message', + ); + }); + + it('pins generated Settings selector values used outside TypeScript', () => { + expect(AccessibilityIdentifiers.settings.section('authentication')).toBe( + 'settings-section-authentication', + ); + expect( + AccessibilityIdentifiers.settings.buyerIdentityOption('customerAccount'), + ).toBe('settings-buyer-identity-option-customer-account'); + expect(AccessibilityIdentifiers.settings.themeOption('storefront')).toBe( + 'settings-theme-option-storefront', + ); + expect( + AccessibilityIdentifiers.settings.applePayStyleOption('whiteOutline'), + ).toBe('settings-apple-pay-style-option-white-outline'); + expect(AccessibilityIdentifiers.settings.checkoutPreloadingSwitch).toBe( + 'settings-checkout-preloading-switch', + ); + }); +}); diff --git a/platforms/react-native/sample/src/e2e/testIds.ts b/platforms/react-native/sample/src/accessibility/accessibilityIdentifiers.ts similarity index 82% rename from platforms/react-native/sample/src/e2e/testIds.ts rename to platforms/react-native/sample/src/accessibility/accessibilityIdentifiers.ts index 52a113ec8..176f8767d 100644 --- a/platforms/react-native/sample/src/e2e/testIds.ts +++ b/platforms/react-native/sample/src/accessibility/accessibilityIdentifiers.ts @@ -1,4 +1,4 @@ -export class E2ETestIds { +export class AccessibilityIdentifiers { private static kebabCase(value: string) { return value .replace(/([a-z0-9])([A-Z])/g, '$1-$2') @@ -33,13 +33,13 @@ export class E2ETestIds { static readonly settings = { screen: 'settings-screen', section: (section: string) => - `settings-section-${E2ETestIds.kebabCase(section)}`, + `settings-section-${AccessibilityIdentifiers.kebabCase(section)}`, buyerIdentityOption: (mode: string) => - `settings-buyer-identity-option-${E2ETestIds.kebabCase(mode)}`, + `settings-buyer-identity-option-${AccessibilityIdentifiers.kebabCase(mode)}`, themeOption: (scheme: string) => - `settings-theme-option-${E2ETestIds.kebabCase(scheme)}`, + `settings-theme-option-${AccessibilityIdentifiers.kebabCase(scheme)}`, applePayStyleOption: (style: string) => - `settings-apple-pay-style-option-${E2ETestIds.kebabCase(style)}`, + `settings-apple-pay-style-option-${AccessibilityIdentifiers.kebabCase(style)}`, checkoutPreloadingSwitch: 'settings-checkout-preloading-switch', buyerIdentityDetails: 'settings-buyer-identity-details', buyerIdentitySignInLink: 'settings-buyer-identity-sign-in-link', diff --git a/platforms/react-native/sample/src/e2e/__tests__/testIds.test.ts b/platforms/react-native/sample/src/e2e/__tests__/testIds.test.ts deleted file mode 100644 index eeeed8f14..000000000 --- a/platforms/react-native/sample/src/e2e/__tests__/testIds.test.ts +++ /dev/null @@ -1,30 +0,0 @@ -import {E2ETestIds} from '../testIds'; - -describe('E2ETestIds', () => { - it('pins selector values consumed by Maestro flows', () => { - expect(E2ETestIds.appReady).toBe('checkout-kit-sample-ready'); - expect(E2ETestIds.tabs.catalog).toBe('catalog-tab'); - expect(E2ETestIds.tabs.cart).toBe('cart-tab'); - expect(E2ETestIds.cart.checkoutReady).toBe('cart-checkout-ready'); - expect(E2ETestIds.cart.checkoutButton).toBe('checkout-button'); - expect(E2ETestIds.cart.emptyMessage).toBe('cart-empty-message'); - }); - - it('pins generated Settings selector values used outside TypeScript', () => { - expect(E2ETestIds.settings.section('authentication')).toBe( - 'settings-section-authentication', - ); - expect(E2ETestIds.settings.buyerIdentityOption('customerAccount')).toBe( - 'settings-buyer-identity-option-customer-account', - ); - expect(E2ETestIds.settings.themeOption('storefront')).toBe( - 'settings-theme-option-storefront', - ); - expect(E2ETestIds.settings.applePayStyleOption('whiteOutline')).toBe( - 'settings-apple-pay-style-option-white-outline', - ); - expect(E2ETestIds.settings.checkoutPreloadingSwitch).toBe( - 'settings-checkout-preloading-switch', - ); - }); -}); diff --git a/platforms/react-native/sample/src/screens/AccountScreen.tsx b/platforms/react-native/sample/src/screens/AccountScreen.tsx index 53ae5d9d8..b92d9fd98 100644 --- a/platforms/react-native/sample/src/screens/AccountScreen.tsx +++ b/platforms/react-native/sample/src/screens/AccountScreen.tsx @@ -13,7 +13,7 @@ import type {AccountStackParamList} from '../App'; import type {Colors} from '../context/Theme'; import {useTheme} from '../context/Theme'; import {useAuth} from '../context/Auth'; -import {E2ETestIds} from '../e2e/testIds'; +import {AccessibilityIdentifiers} from '../accessibility/accessibilityIdentifiers'; type Props = NativeStackScreenProps; @@ -24,7 +24,9 @@ function AccountScreen({navigation}: Props) { if (isLoading) { return ( - + ); @@ -52,12 +54,18 @@ function AuthenticatedView({ const {logout} = useAuth(); return ( - - + + Signed In {email && ( - + {email} )} @@ -65,7 +73,7 @@ function AuthenticatedView({ Your checkout will be pre-filled with your account information. Sign Out @@ -83,8 +91,12 @@ function UnauthenticatedView({ onSignIn: () => void; }) { return ( - - + + Sign in to your account @@ -96,7 +108,7 @@ function UnauthenticatedView({ • Order history and tracking Sign In diff --git a/platforms/react-native/sample/src/screens/CartScreen.tsx b/platforms/react-native/sample/src/screens/CartScreen.tsx index bbc2ac5e3..cd2e93d72 100644 --- a/platforms/react-native/sample/src/screens/CartScreen.tsx +++ b/platforms/react-native/sample/src/screens/CartScreen.tsx @@ -31,7 +31,7 @@ import { useShopifyEventHandlers, useShopifyProtocolEventHandlers, } from '../hooks/useCheckoutEventHandlers'; -import {E2ETestIds} from '../e2e/testIds'; +import {AccessibilityIdentifiers} from '../accessibility/accessibilityIdentifiers'; function CartScreen(): React.JSX.Element { const {present, preload} = useShopifyCheckout(); @@ -155,7 +155,9 @@ function CartScreen(): React.JSX.Element { return ( - + Your cart is empty. @@ -220,7 +222,7 @@ function CartScreen(): React.JSX.Element { /> Checkout diff --git a/platforms/react-native/sample/src/screens/CatalogScreen.tsx b/platforms/react-native/sample/src/screens/CatalogScreen.tsx index 08fc30fcb..cb76c6935 100644 --- a/platforms/react-native/sample/src/screens/CatalogScreen.tsx +++ b/platforms/react-native/sample/src/screens/CatalogScreen.tsx @@ -19,7 +19,7 @@ import {useCart} from '../context/Cart'; import type {NativeStackScreenProps} from '@react-navigation/native-stack'; import type {RootStackParamList} from '../App'; import {currency} from '../utils'; -import {E2ETestIds} from '../e2e/testIds'; +import {AccessibilityIdentifiers} from '../accessibility/accessibilityIdentifiers'; type Props = NativeStackScreenProps; @@ -65,7 +65,7 @@ function CatalogScreen({navigation}: Props) { { navigation.navigate('ProductDetails', { product: node, diff --git a/platforms/react-native/sample/src/screens/LoginScreen.tsx b/platforms/react-native/sample/src/screens/LoginScreen.tsx index f11be9a96..c728b8cc5 100644 --- a/platforms/react-native/sample/src/screens/LoginScreen.tsx +++ b/platforms/react-native/sample/src/screens/LoginScreen.tsx @@ -13,7 +13,7 @@ import { } from '../auth/customerAccountManager'; import type {Colors} from '../context/Theme'; import {useTheme} from '../context/Theme'; -import {E2ETestIds} from '../e2e/testIds'; +import {AccessibilityIdentifiers} from '../accessibility/accessibilityIdentifiers'; type Props = NativeStackScreenProps; @@ -67,7 +67,9 @@ function LoginScreen({navigation}: Props) { if (isProcessing) { return ( - + ); @@ -76,7 +78,7 @@ function LoginScreen({navigation}: Props) { return ( ; @@ -116,7 +116,9 @@ function ProductDetails({ item.title} renderItem={({item, section}) => { @@ -303,7 +303,9 @@ function SettingsScreen() { return null; }} renderSectionHeader={({section: {id, title}}) => ( - + {title} )} @@ -355,7 +357,7 @@ function SwitchSettingItem({item, styles}: SwitchSettingItemProps) { {item.title} @@ -388,13 +390,19 @@ function selectItemTestID( ) { switch (sectionId) { case 'authentication': - return E2ETestIds.settings.buyerIdentityOption(String(item.value)); + return AccessibilityIdentifiers.settings.buyerIdentityOption( + String(item.value), + ); case 'theme': - return E2ETestIds.settings.themeOption(String(item.value)); + return AccessibilityIdentifiers.settings.themeOption(String(item.value)); case 'apple-pay-style': - return E2ETestIds.settings.applePayStyleOption(String(item.value)); + return AccessibilityIdentifiers.settings.applePayStyleOption( + String(item.value), + ); default: - return E2ETestIds.settings.section(`${sectionId}-${item.value}`); + return AccessibilityIdentifiers.settings.section( + `${sectionId}-${item.value}`, + ); } } @@ -421,7 +429,7 @@ function BuyerIdentityDetails({ case BuyerIdentityMode.Hardcoded: return ( Populates Cart Buyer Identity with values from .env @@ -432,7 +440,7 @@ function BuyerIdentityDetails({ if (authenticated) { return ( Changing Buyer Identity will log you out. @@ -442,7 +450,9 @@ function BuyerIdentityDetails({ User: {email ?? 'Unknown'} navigation.navigate('Account' as never)}> Change user @@ -457,10 +467,10 @@ function BuyerIdentityDetails({ } return ( navigation.navigate('Account' as never)}> Sign in on the diff --git a/platforms/swift/Samples/CheckoutKitSwiftDemo/CheckoutKitSwiftDemo/Sources/E2E/E2ETestIds.swift b/platforms/swift/Samples/CheckoutKitSwiftDemo/CheckoutKitSwiftDemo/Sources/Accessibility/AccessibilityIdentifiers.swift similarity index 85% rename from platforms/swift/Samples/CheckoutKitSwiftDemo/CheckoutKitSwiftDemo/Sources/E2E/E2ETestIds.swift rename to platforms/swift/Samples/CheckoutKitSwiftDemo/CheckoutKitSwiftDemo/Sources/Accessibility/AccessibilityIdentifiers.swift index 5f3a559ce..295073f23 100644 --- a/platforms/swift/Samples/CheckoutKitSwiftDemo/CheckoutKitSwiftDemo/Sources/E2E/E2ETestIds.swift +++ b/platforms/swift/Samples/CheckoutKitSwiftDemo/CheckoutKitSwiftDemo/Sources/Accessibility/AccessibilityIdentifiers.swift @@ -1,4 +1,4 @@ -enum E2ETestIds { +enum AccessibilityIdentifiers { static let appReady = "checkout-kit-sample-ready" enum Cart { diff --git a/platforms/swift/Samples/CheckoutKitSwiftDemo/CheckoutKitSwiftDemo/Sources/App/SceneDelegate.swift b/platforms/swift/Samples/CheckoutKitSwiftDemo/CheckoutKitSwiftDemo/Sources/App/SceneDelegate.swift index d7e6044d7..e597278a5 100644 --- a/platforms/swift/Samples/CheckoutKitSwiftDemo/CheckoutKitSwiftDemo/Sources/App/SceneDelegate.swift +++ b/platforms/swift/Samples/CheckoutKitSwiftDemo/CheckoutKitSwiftDemo/Sources/App/SceneDelegate.swift @@ -55,7 +55,7 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate { tabBarController.viewControllers = viewControllers.compactMap { $0 } - tabBarController.view.accessibilityIdentifier = E2ETestIds.appReady + tabBarController.view.accessibilityIdentifier = AccessibilityIdentifiers.appReady let window = createWindow(windowScene: windowScene, rootViewController: tabBarController) diff --git a/platforms/swift/Samples/CheckoutKitSwiftDemo/CheckoutKitSwiftDemo/Sources/Scenes/Cart/CartView.swift b/platforms/swift/Samples/CheckoutKitSwiftDemo/CheckoutKitSwiftDemo/Sources/Scenes/Cart/CartView.swift index 7d25a39ef..b7bda1d3a 100644 --- a/platforms/swift/Samples/CheckoutKitSwiftDemo/CheckoutKitSwiftDemo/Sources/Scenes/Cart/CartView.swift +++ b/platforms/swift/Samples/CheckoutKitSwiftDemo/CheckoutKitSwiftDemo/Sources/Scenes/Cart/CartView.swift @@ -73,7 +73,7 @@ struct CartView: View { HStack { Text("Check out") .fontWeight(.bold) - .accessibilityIdentifier(E2ETestIds.Cart.checkoutReady) + .accessibilityIdentifier(AccessibilityIdentifiers.Cart.checkoutReady) Spacer() if let amount = cartManager.cart?.cost.totalAmount, let total = MoneyV2(amount: amount.amount, currencyCode: amount.currencyCode).formattedString() @@ -90,7 +90,7 @@ struct CartView: View { ) .disabled(isBusy) .foregroundColor(.white) - .accessibilityIdentifier(E2ETestIds.Cart.checkoutButton) + .accessibilityIdentifier(AccessibilityIdentifiers.Cart.checkoutButton) } .padding(.horizontal, 20) .padding(.bottom, 20) diff --git a/platforms/swift/Samples/CheckoutKitSwiftDemo/CheckoutKitSwiftDemoTests/Accessibility/AccessibilityIdentifiersTests.swift b/platforms/swift/Samples/CheckoutKitSwiftDemo/CheckoutKitSwiftDemoTests/Accessibility/AccessibilityIdentifiersTests.swift new file mode 100644 index 000000000..52c6e4373 --- /dev/null +++ b/platforms/swift/Samples/CheckoutKitSwiftDemo/CheckoutKitSwiftDemoTests/Accessibility/AccessibilityIdentifiersTests.swift @@ -0,0 +1,13 @@ +@testable import CheckoutKitSwiftDemo +import XCTest + +class AccessibilityIdentifiersTests: XCTestCase { + func testAppReadyMarkerMatchesTheMaestroFlows() { + XCTAssertEqual(AccessibilityIdentifiers.appReady, "checkout-kit-sample-ready") + } + + func testCartMarkersMatchTheMaestroFlows() { + XCTAssertEqual(AccessibilityIdentifiers.Cart.checkoutReady, "cart-checkout-ready") + XCTAssertEqual(AccessibilityIdentifiers.Cart.checkoutButton, "checkout-button") + } +} diff --git a/platforms/swift/Samples/CheckoutKitSwiftDemo/CheckoutKitSwiftDemoTests/E2E/E2ETestIdsTests.swift b/platforms/swift/Samples/CheckoutKitSwiftDemo/CheckoutKitSwiftDemoTests/E2E/E2ETestIdsTests.swift deleted file mode 100644 index ce363412b..000000000 --- a/platforms/swift/Samples/CheckoutKitSwiftDemo/CheckoutKitSwiftDemoTests/E2E/E2ETestIdsTests.swift +++ /dev/null @@ -1,13 +0,0 @@ -@testable import CheckoutKitSwiftDemo -import XCTest - -class E2ETestIdsTests: XCTestCase { - func testAppReadyMarkerMatchesTheMaestroFlows() { - XCTAssertEqual(E2ETestIds.appReady, "checkout-kit-sample-ready") - } - - func testCartMarkersMatchTheMaestroFlows() { - XCTAssertEqual(E2ETestIds.Cart.checkoutReady, "cart-checkout-ready") - XCTAssertEqual(E2ETestIds.Cart.checkoutButton, "checkout-button") - } -}