diff --git a/dev/tests/api-functional/testsuite/Magento/GraphQl/Customer/GenerateCustomerTokenTest.php b/dev/tests/api-functional/testsuite/Magento/GraphQl/Customer/GenerateCustomerTokenTest.php index e13c1974e306..85c2fc1c847b 100644 --- a/dev/tests/api-functional/testsuite/Magento/GraphQl/Customer/GenerateCustomerTokenTest.php +++ b/dev/tests/api-functional/testsuite/Magento/GraphQl/Customer/GenerateCustomerTokenTest.php @@ -8,11 +8,9 @@ namespace Magento\GraphQl\Customer; use Magento\TestFramework\TestCase\GraphQlAbstract; -use PHPUnit\Framework\TestResult; /** - * Class GenerateCustomerTokenTest - * @package Magento\GraphQl\Customer + * API-functional tests cases for generateCustomerToken mutation */ class GenerateCustomerTokenTest extends GraphQlAbstract { @@ -23,20 +21,10 @@ class GenerateCustomerTokenTest extends GraphQlAbstract */ public function testGenerateCustomerValidToken() { - $userName = 'customer@example.com'; + $email = 'customer@example.com'; $password = 'password'; - $mutation - = <<getQuery($email, $password); $response = $this->graphQlMutation($mutation); $this->assertArrayHasKey('generateCustomerToken', $response); @@ -44,66 +32,84 @@ public function testGenerateCustomerValidToken() } /** - * Verify customer with invalid credentials + * Test customer with invalid data. + * + * @magentoApiDataFixture Magento/Customer/_files/customer.php + * @expectedException \Exception + * + * @dataProvider dataProviderInvalidCustomerInfo + * @param string $email + * @param string $password + * @param string $message */ - public function testGenerateCustomerTokenWithInvalidCredentials() + public function testGenerateCustomerTokenInvalidData(string $email, string $password, string $message) { - $userName = 'customer@example.com'; - $password = 'bad-password'; - - $mutation - = <<expectException(\Exception::class); - $this->expectExceptionMessage('GraphQL response contains errors: The account sign-in' . ' ' . - 'was incorrect or your account is disabled temporarily. Please wait and try again later.'); + $mutation = $this->getQuery($email, $password); + $this->expectExceptionMessage($message); $this->graphQlMutation($mutation); } /** - * Verify customer with empty email + * Test customer token regeneration. + * + * @magentoApiDataFixture Magento/Customer/_files/customer.php */ - public function testGenerateCustomerTokenWithEmptyEmail() + public function testRegenerateCustomerToken() { - $email = ''; - $password = 'bad-password'; + $email = 'customer@example.com'; + $password = 'password'; - $mutation - = <<getQuery($email, $password); - $this->expectException(\Exception::class); - $this->expectExceptionMessage('GraphQL response contains errors: Specify the "email" value.'); - $this->graphQlMutation($mutation); + $response1 = $this->graphQlMutation($mutation); + $token1 = $response1['generateCustomerToken']['token']; + + $response2 = $this->graphQlMutation($mutation); + $token2 = $response2['generateCustomerToken']['token']; + + $this->assertNotEquals($token1, $token2, 'Tokens should not be identical!'); } /** - * Verify customer with empty password + * @return array */ - public function testGenerateCustomerTokenWithEmptyPassword() + public function dataProviderInvalidCustomerInfo(): array { - $email = 'customer@example.com'; - $password = ''; + return [ + 'invalid_email' => [ + 'invalid_email@example.com', + 'password', + 'The account sign-in was incorrect or your account is disabled temporarily. ' . + 'Please wait and try again later.' + ], + 'empty_email' => [ + '', + 'password', + 'Specify the "email" value.' + ], + 'invalid_password' => [ + 'customer@example.com', + 'invalid_password', + 'The account sign-in was incorrect or your account is disabled temporarily. ' . + 'Please wait and try again later.' + ], + 'empty_password' => [ + 'customer@example.com', + '', + 'Specify the "password" value.' + + ] + ]; + } - $mutation - = <<expectException(\Exception::class); - $this->expectExceptionMessage('GraphQL response contains errors: Specify the "password" value.'); - $this->graphQlMutation($mutation); } }