fittinq / symfony-behat-authenticator
Requires
- doctrine/doctrine-bundle: ^2.5
- doctrine/orm: ^2.10
- symfony/framework-bundle: ^6.0
Requires (Dev)
- behat/behat: ^3.10
- fittinq/symfony-behat-services: ^1.0
- friends-of-behat/mink: ^1.10
- friends-of-behat/mink-extension: ^2.6
- friends-of-behat/symfony-extension: ^2.3
- phpunit/phpunit: ^9.5
- symfony/yaml: ^6.1
README
The Symfony Behat Authenticator Bundle is a powerful tool that simplifies writing Behat tests for your Symfony applications. It provides Behat contexts and services to assist in testing user authentication, roles, and frontend interactions.
Table of Contents
Installation
You can install the bundle using Composer:
composer require fittinq/symfony-behat-authenticator
Configuration
Update your project to include the Behat bundle in your test setup.
default:
default:
paths:
- behat/features
contexts:
- Fittinq\Symfony\Behat\Authenticator\Context\AuthenticatorApiContext
- Fittinq\Symfony\Behat\Authenticator\Context\AuthenticatorDatabaseContext
- Fittinq\Symfony\Behat\Authenticator\Context\AuthenticatorUserContext
- Fittinq\Symfony\Behat\Authenticator\Context\AuthenticatorRoleContext
- Fittinq\Symfony\Behat\Authenticator\Context\AuthenticatorFrontendContext
Usage
AuthenticatorRoleContext
This context focuses on managing roles and includes steps for adding roles and verifying their existence.
Example Usage:
Given there are roles
| name |
| ROLE_USER |
| ROLE_ADMIN |
| ROLE_EDITOR|
AuthenticatorUserContext
This context is designed for managing user-related Behat steps. It includes steps for adding users and authenticating them via an API.
Example Usage:
Given there are users
| username | password | roles |
| user1 | secret | ROLE_USER |
| admin | password | ROLE_ADMIN |
| editor | 123456 | ROLE_EDITOR |
AuthenticatorFrontendContext
The AuthenticatorFrontendContext is for testing frontend interactions, such as user logins and checking HTTP status codes and page content.
Example Usage:
Given user user1 logs in to the frontend app
Then the current page should contain text "Welcome, user1!"