From 6ed1bdeaa1575bced76688754c635497b331723f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Lys=C3=BD?= Date: Mon, 31 Jan 2022 16:52:05 +0100 Subject: [PATCH] Fix creating plan and member in WooCommerceMembership data factory Membership commands return a string message, so we need to parse ID from a sentence. [MAILPOET-4095] --- mailpoet/tests/DataFactories/WooCommerceMembership.php | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/mailpoet/tests/DataFactories/WooCommerceMembership.php b/mailpoet/tests/DataFactories/WooCommerceMembership.php index 2cbefb07e2..63056b0a38 100644 --- a/mailpoet/tests/DataFactories/WooCommerceMembership.php +++ b/mailpoet/tests/DataFactories/WooCommerceMembership.php @@ -16,16 +16,18 @@ class WooCommerceMembership { $createCommand = ['wc', 'memberships', 'plan', 'create']; $createCommand[] = "--name='{$name}'"; $createOutput = $this->tester->cliToString($createCommand); - $planOut = $this->tester->cliToString(['wc', 'membership_plan', 'get', $createOutput, '--format=json']); + preg_match('!\d+!', $createOutput, $matches); + $planOut = $this->tester->cliToString(['wc', 'membership_plan', 'get', reset($matches), '--format=json', '--user=admin']); return json_decode($planOut, true); } public function createMember(int $userId, int $planId) { - $createCommand = ['wc', 'user_membership', 'create']; + $createCommand = ['wc', 'user_membership', 'create', '--user=admin']; $createCommand[] = "--customer_id='{$userId}'"; - $createCommand[] = "--plan_id='{$userId}'"; + $createCommand[] = "--plan_id='{$planId}'"; $createOutput = $this->tester->cliToString($createCommand); - $membershipOut = $this->tester->cliToString(['wc', 'user_membership', 'get', $createOutput, '--format=json']); + preg_match('!\d+!', $createOutput, $matches); + $membershipOut = $this->tester->cliToString(['wc', 'user_membership', 'get', reset($matches), '--format=json', '--user=admin']); return json_decode($membershipOut, true); } }