Skip to content

Commit 257fc34

Browse files
authored
Merge pull request #3866 from woocommerce/issue/3846-fix-missing-more-button-for-variations
Fix Unable to Delete Variations
2 parents 3bd5047 + f07b64f commit 257fc34

File tree

2 files changed

+22
-14
lines changed

2 files changed

+22
-14
lines changed

WooCommerce/Classes/ViewRelated/Products/Edit Product/ProductVariationFormViewModel.swift

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,12 +65,20 @@ final class ProductVariationFormViewModel: ProductFormViewModelProtocol {
6565

6666
/// The action buttons that should be rendered in the navigation bar.
6767
var actionButtons: [ActionButtonType] {
68-
switch (formType, hasUnsavedChanges()) {
69-
case (.edit, true):
70-
return [.save]
71-
default:
72-
return []
68+
var buttons: [ActionButtonType] = {
69+
switch (formType, hasUnsavedChanges()) {
70+
case (.edit, true):
71+
return [.save]
72+
default:
73+
return []
74+
}
75+
}()
76+
77+
if shouldShowMoreOptionsMenu() {
78+
buttons.append(.more)
7379
}
80+
81+
return buttons
7482
}
7583

7684
/// Assign this closure to get notified when the variation is deleted.

WooCommerce/WooCommerceTests/ViewRelated/Products/Edit Product/ProductVariationFormViewModel+ChangesTests.swift

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import Yosemite
88
final class ProductVariationFormViewModel_ChangesTests: XCTestCase {
99
private let defaultSiteID: Int64 = 134
1010

11-
func testProductVariationHasNoChangesFromEditActionsOfTheSameData() {
11+
func test_product_variation_has_no_changes_from_edit_actions_of_the_same_data() {
1212
// Arrange
1313
let productVariation = MockProductVariation().productVariation()
1414
let model = EditableProductVariationModel(productVariation: productVariation)
@@ -36,7 +36,7 @@ final class ProductVariationFormViewModel_ChangesTests: XCTestCase {
3636
XCTAssertFalse(viewModel.hasUnsavedChanges())
3737
}
3838

39-
func testProductVariationHasUnsavedChangesFromUploadingAnImage() {
39+
func test_product_variation_has_unsaved_changes_from_uploading_an_image() {
4040
// Arrange
4141
let productVariation = MockProductVariation().productVariation()
4242
let model = EditableProductVariationModel(productVariation: productVariation)
@@ -57,7 +57,7 @@ final class ProductVariationFormViewModel_ChangesTests: XCTestCase {
5757
XCTAssertTrue(viewModel.hasUnsavedChanges())
5858
}
5959

60-
func testProductVariationHasUnsavedChangesFromEditingImages() {
60+
func test_product_variation_has_unsaved_changes_from_editing_images() {
6161
// Arrange
6262
let productVariation = MockProductVariation().productVariation()
6363
let model = EditableProductVariationModel(productVariation: productVariation)
@@ -77,7 +77,7 @@ final class ProductVariationFormViewModel_ChangesTests: XCTestCase {
7777
XCTAssertTrue(viewModel.hasUnsavedChanges())
7878
}
7979

80-
func testProductVariationHasUnsavedChangesFromEditingDescription() {
80+
func test_product_variation_has_unsaved_changes_from_editing_description() {
8181
// Arrange
8282
let productVariation = MockProductVariation().productVariation()
8383
let model = EditableProductVariationModel(productVariation: productVariation)
@@ -91,7 +91,7 @@ final class ProductVariationFormViewModel_ChangesTests: XCTestCase {
9191
XCTAssertTrue(viewModel.hasUnsavedChanges())
9292
}
9393

94-
func testProductVariationHasUnsavedChangesFromEditingPriceSettings() {
94+
func test_product_variation_has_unsaved_changes_from_editing_price_settings() {
9595
// Arrange
9696
let productVariation = MockProductVariation().productVariation()
9797
let model = EditableProductVariationModel(productVariation: productVariation)
@@ -105,7 +105,7 @@ final class ProductVariationFormViewModel_ChangesTests: XCTestCase {
105105
XCTAssertTrue(viewModel.hasUnsavedChanges())
106106
}
107107

108-
func testProductVariationHasUnsavedChangesFromEditingInventorySettings() {
108+
func test_product_variation_has_unsaved_changes_from_editing_inventory_settings() {
109109
// Arrange
110110
let productVariation = MockProductVariation().productVariation()
111111
let model = EditableProductVariationModel(productVariation: productVariation)
@@ -119,7 +119,7 @@ final class ProductVariationFormViewModel_ChangesTests: XCTestCase {
119119
XCTAssertTrue(viewModel.hasUnsavedChanges())
120120
}
121121

122-
func testProductVariationHasUnsavedChangesFromEditingShippingSettings() {
122+
func test_product_variation_has_unsaved_changes_from_editing_shipping_settings() {
123123
// Arrange
124124
let productVariation = MockProductVariation().productVariation()
125125
let model = EditableProductVariationModel(productVariation: productVariation)
@@ -162,7 +162,7 @@ final class ProductVariationFormViewModel_ChangesTests: XCTestCase {
162162
let actionButtons = viewModel.actionButtons
163163

164164
// Then
165-
XCTAssertEqual(actionButtons, [.save])
165+
XCTAssertEqual(actionButtons, [.save, .more])
166166
}
167167

168168
func test_action_buttons_for_existing_product_and_no_pending_changes() {
@@ -176,7 +176,7 @@ final class ProductVariationFormViewModel_ChangesTests: XCTestCase {
176176
let actionButtons = viewModel.actionButtons
177177

178178
// Then
179-
XCTAssertEqual(actionButtons, [])
179+
XCTAssertEqual(actionButtons, [.more])
180180
}
181181
}
182182

0 commit comments

Comments
 (0)