From 100becb122e72d8c6681a849af3eb291663107ed Mon Sep 17 00:00:00 2001 From: Piotr Stachyra Date: Mon, 24 Nov 2025 19:27:14 +0100 Subject: [PATCH 1/5] AddTagSheet --- Bitkit/Views/Wallets/Sheets/AddTagSheet.swift | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Bitkit/Views/Wallets/Sheets/AddTagSheet.swift b/Bitkit/Views/Wallets/Sheets/AddTagSheet.swift index 4a341ee7..d8df73a7 100644 --- a/Bitkit/Views/Wallets/Sheets/AddTagSheet.swift +++ b/Bitkit/Views/Wallets/Sheets/AddTagSheet.swift @@ -42,7 +42,9 @@ struct AddTagSheet: View { TagInputForm( tagText: $newTag, isTextFieldFocused: $isTextFieldFocused, - isLoading: isLoading + isLoading: isLoading, + textFieldTestId: "TagInput", + buttonTestId: "ActivityTagsSubmit" ) { tag in await appendTagAndClose(tag) } From 976ebd544bc910824423e144f04afc4f2f1b1f01 Mon Sep 17 00:00:00 2001 From: Piotr Stachyra Date: Tue, 25 Nov 2025 11:36:50 +0100 Subject: [PATCH 2/5] Introduce AllSynced helper check (as in android) --- .../Settings/Backup/BackupSettings.swift | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/Bitkit/Views/Settings/Backup/BackupSettings.swift b/Bitkit/Views/Settings/Backup/BackupSettings.swift index 0b723d21..bd827008 100644 --- a/Bitkit/Views/Settings/Backup/BackupSettings.swift +++ b/Bitkit/Views/Settings/Backup/BackupSettings.swift @@ -55,6 +55,13 @@ struct BackupSettings: View { @EnvironmentObject var sheets: SheetViewModel @StateObject private var viewModel = BackupViewModel() + private var allSynced: Bool { + BackupCategory.allCases.allSatisfy { category in + let status = viewModel.getStatus(for: category) + return !status.running && !status.isRequired + } + } + var body: some View { VStack(alignment: .leading, spacing: 0) { NavigationBar(title: t("settings__backup_title")) @@ -74,8 +81,18 @@ struct BackupSettings: View { } .accessibilityIdentifier("ResetAndRestore") - SettingsLabel(t("settings__backup__latest")) - .padding(.top, 16) + HStack(alignment: .center, spacing: 8) { + SettingsLabel(t("settings__backup__latest")) + .padding(.top, 16) + + if Env.isE2E, allSynced { + Image("check") + .resizable() + .frame(width: 16, height: 16) + .foregroundColor(.greenAccent) + .accessibilityIdentifier("AllSynced") + } + } ForEach(BackupCategory.allCases, id: \.self) { category in let status = viewModel.getStatus(for: category) From d832297b8d8b936921ef46534c85e225e5173f61 Mon Sep 17 00:00:00 2001 From: Piotr Stachyra Date: Tue, 25 Nov 2025 13:12:20 +0100 Subject: [PATCH 3/5] include backup test --- .github/workflows/e2e-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/e2e-tests.yml b/.github/workflows/e2e-tests.yml index 8579743c..8d5e7992 100644 --- a/.github/workflows/e2e-tests.yml +++ b/.github/workflows/e2e-tests.yml @@ -108,7 +108,7 @@ jobs: # - { name: onchain_boost_receive_widgets, grep: "@onchain|@boost|@receive|@widgets" } # - { name: settings, grep: "@settings" } # - { name: security, grep: "@security" } - - { name: e2e, grep: '^(?!.*@settings_10)(@onboarding|@onchain_1|@onchain_2|@numberpad|@widgets|@boost|@receive|@settings|@security)' } + - { name: e2e, grep: '^(?!.*@settings_10)(@backup|@onboarding|@onchain_1|@onchain_2|@numberpad|@widgets|@boost|@receive|@settings|@security)' } name: e2e-tests - ${{ matrix.shard.name }} From 83e1880ed4a532e7815018c739ddfdb7e5f46bf0 Mon Sep 17 00:00:00 2001 From: Piotr Stachyra Date: Tue, 25 Nov 2025 14:17:01 +0100 Subject: [PATCH 4/5] fix padding --- Bitkit/Views/Settings/Backup/BackupSettings.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Bitkit/Views/Settings/Backup/BackupSettings.swift b/Bitkit/Views/Settings/Backup/BackupSettings.swift index bd827008..de0909a9 100644 --- a/Bitkit/Views/Settings/Backup/BackupSettings.swift +++ b/Bitkit/Views/Settings/Backup/BackupSettings.swift @@ -83,7 +83,6 @@ struct BackupSettings: View { HStack(alignment: .center, spacing: 8) { SettingsLabel(t("settings__backup__latest")) - .padding(.top, 16) if Env.isE2E, allSynced { Image("check") @@ -93,6 +92,7 @@ struct BackupSettings: View { .accessibilityIdentifier("AllSynced") } } + .padding(.top, 16) ForEach(BackupCategory.allCases, id: \.self) { category in let status = viewModel.getStatus(for: category) From 85335378e075d5e0a19f5fbe0e7439a552b4ad4b Mon Sep 17 00:00:00 2001 From: Piotr Stachyra Date: Tue, 25 Nov 2025 14:28:51 +0100 Subject: [PATCH 5/5] adjust behavior on clear date --- Bitkit/Components/Activity/DateRangeSelectorSheet.swift | 1 - 1 file changed, 1 deletion(-) diff --git a/Bitkit/Components/Activity/DateRangeSelectorSheet.swift b/Bitkit/Components/Activity/DateRangeSelectorSheet.swift index 9418557f..f2946226 100644 --- a/Bitkit/Components/Activity/DateRangeSelectorSheet.swift +++ b/Bitkit/Components/Activity/DateRangeSelectorSheet.swift @@ -182,7 +182,6 @@ struct DateRangeSelectorSheet: View { startDate = nil endDate = nil viewModel.clearDateRange() - isPresented = false } .accessibilityIdentifier("CalendarClearButton")