scopeConfig = $objectManager->get(ScopeConfigInterface::class); /* @var StoreResolverInterface $storeResolver */ $storeResolver = $objectManager->get(StoreResolverInterface::class); $this->storeId = $storeResolver->getCurrentStoreId(); } /** * @magentoApiDataFixture Magento/Customer/_files/customer.php */ public function testEmailNotAvailable() { $query = <<graphQlQuery($query); self::assertArrayHasKey('isEmailAvailable', $response); self::assertArrayHasKey('is_email_available', $response['isEmailAvailable']); $emailConfig = $this->scopeConfig->getValue( AccountManagement::GUEST_CHECKOUT_LOGIN_OPTION_SYS_CONFIG, ScopeInterface::SCOPE_STORE, $this->storeId ); if (!$emailConfig) { self::assertTrue($response['isEmailAvailable']['is_email_available']); } else { self::assertFalse($response['isEmailAvailable']['is_email_available']); } } /** * Verify email availability */ public function testEmailAvailable() { $query = <<graphQlQuery($query); self::assertArrayHasKey('isEmailAvailable', $response); self::assertArrayHasKey('is_email_available', $response['isEmailAvailable']); self::assertTrue($response['isEmailAvailable']['is_email_available']); } /** */ public function testEmailAvailableEmptyValue() { $this->expectException(\Exception::class); $this->expectExceptionMessage('GraphQL response contains errors: Email must be specified'); $query = <<graphQlQuery($query); } /** */ public function testEmailAvailableMissingValue() { $this->expectException(\Exception::class); $this->expectExceptionMessage('Field "isEmailAvailable" argument "email" of type "String!" is required'); $query = <<graphQlQuery($query); } /** */ public function testEmailAvailableInvalidValue() { $this->expectException(\Exception::class); $this->expectExceptionMessage('GraphQL response contains errors: Email is invalid'); $query = <<graphQlQuery($query); } }