@@ -82,4 +82,43 @@ public function test_migration_handles_empty_enabled_payment_methods() {
82
82
$ this ->assertArrayHasKey ( 'pmc_enabled ' , $ updated_settings );
83
83
$ this ->assertEquals ( 'yes ' , $ updated_settings ['pmc_enabled ' ] );
84
84
}
85
+
86
+ public function test_migration_sets_default_payment_method_order () {
87
+ // Set up environment with pmc_enabled not set and no payment method order
88
+ $ stripe_settings = WC_Stripe_Helper::get_stripe_settings ();
89
+ $ stripe_settings ['test_connection_type ' ] = 'connect ' ;
90
+ $ stripe_settings ['pmc_enabled ' ] = '' ;
91
+ $ stripe_settings ['stripe_upe_payment_method_order ' ] = '' ;
92
+ WC_Stripe_Helper::update_main_stripe_settings ( $ stripe_settings );
93
+
94
+ $ this ->mock_payment_method_configurations ( [], [] );
95
+
96
+ // Execute migration
97
+ $ this ->pmc ->maybe_migrate_payment_methods_from_db_to_pmc ();
98
+
99
+ // Verify payment method order is set to default
100
+ $ updated_settings = WC_Stripe_Helper::get_stripe_settings ();
101
+ $ this ->assertArrayHasKey ( 'stripe_upe_payment_method_order ' , $ updated_settings );
102
+ $ this ->assertEquals ( array_keys ( WC_Stripe_UPE_Payment_Gateway::UPE_AVAILABLE_METHODS ), $ updated_settings ['stripe_upe_payment_method_order ' ] );
103
+ }
104
+
105
+ public function test_migration_preserves_existing_payment_method_order () {
106
+ // Set up environment with pmc_enabled not set and existing payment method order
107
+ $ existing_order = [ 'card ' , 'sepa_debit ' , 'ideal ' ];
108
+ $ stripe_settings = WC_Stripe_Helper::get_stripe_settings ();
109
+ $ stripe_settings ['test_connection_type ' ] = 'connect ' ;
110
+ $ stripe_settings ['pmc_enabled ' ] = '' ;
111
+ $ stripe_settings ['stripe_upe_payment_method_order ' ] = $ existing_order ;
112
+ WC_Stripe_Helper::update_main_stripe_settings ( $ stripe_settings );
113
+
114
+ $ this ->mock_payment_method_configurations ( [], [] );
115
+
116
+ // Execute migration
117
+ $ this ->pmc ->maybe_migrate_payment_methods_from_db_to_pmc ();
118
+
119
+ // Verify payment method order is preserved
120
+ $ updated_settings = WC_Stripe_Helper::get_stripe_settings ();
121
+ $ this ->assertArrayHasKey ( 'stripe_upe_payment_method_order ' , $ updated_settings );
122
+ $ this ->assertEquals ( $ existing_order , $ updated_settings ['stripe_upe_payment_method_order ' ] );
123
+ }
85
124
}
0 commit comments