mirror of
https://github.com/opdavies/build-configs.git
synced 2025-02-02 05:47:32 +00:00
Add Behat
Add Behat as a dev dependency and add the example `ls` example. Due to a deprecation error, I needed to downgrade to PHP 8.1 on stream, though this would error the main `app:generate` command as I'm using `readonly` classes that were introduced in PHP 8.2.
This commit is contained in:
parent
65070dfb2b
commit
0d774daca0
|
@ -70,6 +70,7 @@
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"bamarni/composer-bin-plugin": "^1.8",
|
"bamarni/composer-bin-plugin": "^1.8",
|
||||||
|
"behat/behat": "^3.14",
|
||||||
"phpstan/phpstan": "^1.10",
|
"phpstan/phpstan": "^1.10",
|
||||||
"phpunit/phpunit": "^9.5",
|
"phpunit/phpunit": "^9.5",
|
||||||
"symfony/browser-kit": "^6.4",
|
"symfony/browser-kit": "^6.4",
|
||||||
|
|
203
composer.lock
generated
203
composer.lock
generated
|
@ -4,7 +4,7 @@
|
||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "8f7c72036cf473ae396a2e66a30c45a1",
|
"content-hash": "e7d5bf85313a3f5cb74e96149e0c01ec",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "doctrine/annotations",
|
"name": "doctrine/annotations",
|
||||||
|
@ -4504,6 +4504,205 @@
|
||||||
},
|
},
|
||||||
"time": "2022-10-31T08:38:03+00:00"
|
"time": "2022-10-31T08:38:03+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "behat/behat",
|
||||||
|
"version": "v3.14.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/Behat/Behat.git",
|
||||||
|
"reference": "2a3832d9cb853a794af3a576f9e524ae460f3340"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/Behat/Behat/zipball/2a3832d9cb853a794af3a576f9e524ae460f3340",
|
||||||
|
"reference": "2a3832d9cb853a794af3a576f9e524ae460f3340",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"behat/gherkin": "^4.9.0",
|
||||||
|
"behat/transliterator": "^1.2",
|
||||||
|
"ext-mbstring": "*",
|
||||||
|
"php": "^7.2 || ^8.0",
|
||||||
|
"psr/container": "^1.0 || ^2.0",
|
||||||
|
"symfony/config": "^4.4 || ^5.0 || ^6.0 || ^7.0",
|
||||||
|
"symfony/console": "^4.4 || ^5.0 || ^6.0 || ^7.0",
|
||||||
|
"symfony/dependency-injection": "^4.4 || ^5.0 || ^6.0 || ^7.0",
|
||||||
|
"symfony/event-dispatcher": "^4.4 || ^5.0 || ^6.0 || ^7.0",
|
||||||
|
"symfony/translation": "^4.4 || ^5.0 || ^6.0 || ^7.0",
|
||||||
|
"symfony/yaml": "^4.4 || ^5.0 || ^6.0 || ^7.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"herrera-io/box": "~1.6.1",
|
||||||
|
"phpspec/prophecy": "^1.15",
|
||||||
|
"phpunit/phpunit": "^8.5 || ^9.0",
|
||||||
|
"symfony/process": "^4.4 || ^5.0 || ^6.0 || ^7.0",
|
||||||
|
"vimeo/psalm": "^4.8"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"ext-dom": "Needed to output test results in JUnit format."
|
||||||
|
},
|
||||||
|
"bin": [
|
||||||
|
"bin/behat"
|
||||||
|
],
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "3.x-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Behat\\Hook\\": "src/Behat/Hook/",
|
||||||
|
"Behat\\Step\\": "src/Behat/Step/",
|
||||||
|
"Behat\\Behat\\": "src/Behat/Behat/",
|
||||||
|
"Behat\\Testwork\\": "src/Behat/Testwork/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Konstantin Kudryashov",
|
||||||
|
"email": "ever.zet@gmail.com",
|
||||||
|
"homepage": "http://everzet.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Scenario-oriented BDD framework for PHP",
|
||||||
|
"homepage": "http://behat.org/",
|
||||||
|
"keywords": [
|
||||||
|
"Agile",
|
||||||
|
"BDD",
|
||||||
|
"ScenarioBDD",
|
||||||
|
"Scrum",
|
||||||
|
"StoryBDD",
|
||||||
|
"User story",
|
||||||
|
"business",
|
||||||
|
"development",
|
||||||
|
"documentation",
|
||||||
|
"examples",
|
||||||
|
"symfony",
|
||||||
|
"testing"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/Behat/Behat/issues",
|
||||||
|
"source": "https://github.com/Behat/Behat/tree/v3.14.0"
|
||||||
|
},
|
||||||
|
"time": "2023-12-09T13:55:02+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "behat/gherkin",
|
||||||
|
"version": "v4.9.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/Behat/Gherkin.git",
|
||||||
|
"reference": "0bc8d1e30e96183e4f36db9dc79caead300beff4"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/Behat/Gherkin/zipball/0bc8d1e30e96183e4f36db9dc79caead300beff4",
|
||||||
|
"reference": "0bc8d1e30e96183e4f36db9dc79caead300beff4",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": "~7.2|~8.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"cucumber/cucumber": "dev-gherkin-22.0.0",
|
||||||
|
"phpunit/phpunit": "~8|~9",
|
||||||
|
"symfony/yaml": "~3|~4|~5"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"symfony/yaml": "If you want to parse features, represented in YAML files"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "4.x-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-0": {
|
||||||
|
"Behat\\Gherkin": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Konstantin Kudryashov",
|
||||||
|
"email": "ever.zet@gmail.com",
|
||||||
|
"homepage": "http://everzet.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Gherkin DSL parser for PHP",
|
||||||
|
"homepage": "http://behat.org/",
|
||||||
|
"keywords": [
|
||||||
|
"BDD",
|
||||||
|
"Behat",
|
||||||
|
"Cucumber",
|
||||||
|
"DSL",
|
||||||
|
"gherkin",
|
||||||
|
"parser"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/Behat/Gherkin/issues",
|
||||||
|
"source": "https://github.com/Behat/Gherkin/tree/v4.9.0"
|
||||||
|
},
|
||||||
|
"time": "2021-10-12T13:05:09+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "behat/transliterator",
|
||||||
|
"version": "v1.5.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/Behat/Transliterator.git",
|
||||||
|
"reference": "baac5873bac3749887d28ab68e2f74db3a4408af"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/Behat/Transliterator/zipball/baac5873bac3749887d28ab68e2f74db3a4408af",
|
||||||
|
"reference": "baac5873bac3749887d28ab68e2f74db3a4408af",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=7.2"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"chuyskywalker/rolling-curl": "^3.1",
|
||||||
|
"php-yaoi/php-yaoi": "^1.0",
|
||||||
|
"phpunit/phpunit": "^8.5.25 || ^9.5.19"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "1.x-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Behat\\Transliterator\\": "src/Behat/Transliterator"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"Artistic-1.0"
|
||||||
|
],
|
||||||
|
"description": "String transliterator",
|
||||||
|
"keywords": [
|
||||||
|
"i18n",
|
||||||
|
"slug",
|
||||||
|
"transliterator"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/Behat/Transliterator/issues",
|
||||||
|
"source": "https://github.com/Behat/Transliterator/tree/v1.5.0"
|
||||||
|
},
|
||||||
|
"time": "2022-03-30T09:27:43+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "doctrine/instantiator",
|
"name": "doctrine/instantiator",
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
|
@ -6814,5 +7013,5 @@
|
||||||
"platform-overrides": {
|
"platform-overrides": {
|
||||||
"php": "8.2"
|
"php": "8.2"
|
||||||
},
|
},
|
||||||
"plugin-api-version": "2.3.0"
|
"plugin-api-version": "2.6.0"
|
||||||
}
|
}
|
||||||
|
|
64
features/bootstrap/FeatureContext.php
Normal file
64
features/bootstrap/FeatureContext.php
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
use Behat\Behat\Context\Context;
|
||||||
|
use Behat\Gherkin\Node\PyStringNode;
|
||||||
|
use Behat\Gherkin\Node\TableNode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Defines application features from the specific context.
|
||||||
|
*/
|
||||||
|
class FeatureContext implements Context
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Initializes context.
|
||||||
|
*
|
||||||
|
* Every scenario gets its own context instance.
|
||||||
|
* You can also pass arbitrary arguments to the
|
||||||
|
* context constructor through behat.yml.
|
||||||
|
*/
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Given I am in a directory :arg1
|
||||||
|
*/
|
||||||
|
public function iAmInADirectory($dir)
|
||||||
|
{
|
||||||
|
if (!file_exists($dir)) {
|
||||||
|
mkdir($dir);
|
||||||
|
}
|
||||||
|
|
||||||
|
chdir($dir);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Given I have a file named :arg1
|
||||||
|
*/
|
||||||
|
public function iHaveAFileNamed($file)
|
||||||
|
{
|
||||||
|
touch($file);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @When I run :arg1
|
||||||
|
*/
|
||||||
|
public function iRun($command)
|
||||||
|
{
|
||||||
|
exec($command, $output);
|
||||||
|
|
||||||
|
$this->output = trim(implode("\n", $output));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Then I should get:
|
||||||
|
*/
|
||||||
|
public function iShouldGet(PyStringNode $string)
|
||||||
|
{
|
||||||
|
if ((string) $string !== $this->output) {
|
||||||
|
throw new Exception(
|
||||||
|
"Actual output is:\n" . $this->output
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
15
features/ls.feature
Normal file
15
features/ls.feature
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
Feature: ls
|
||||||
|
In order to see the directory structure
|
||||||
|
As a UNIX user
|
||||||
|
I need to be able to list the current directory's contents
|
||||||
|
|
||||||
|
Scenario: List 2 files in a directory
|
||||||
|
Given I am in a directory "test"
|
||||||
|
And I have a file named "foo"
|
||||||
|
And I have a file named "bar"
|
||||||
|
When I run "ls"
|
||||||
|
Then I should get:
|
||||||
|
"""
|
||||||
|
bar
|
||||||
|
foo
|
||||||
|
"""
|
16
flake.nix
16
flake.nix
|
@ -1,4 +1,5 @@
|
||||||
# Do not edit this file. It is automatically generated by https://www.oliverdavies.uk/build-configs.
|
# Do not edit this file. It is automatically generated by https://www.oliverdavies.uk/build-configs.
|
||||||
|
|
||||||
{
|
{
|
||||||
inputs = {
|
inputs = {
|
||||||
devshell.url = "github:numtide/devshell";
|
devshell.url = "github:numtide/devshell";
|
||||||
|
@ -11,22 +12,13 @@
|
||||||
|
|
||||||
systems = [ "x86_64-linux" ];
|
systems = [ "x86_64-linux" ];
|
||||||
|
|
||||||
perSystem = {
|
perSystem = { config, self', inputs', pkgs, system, ... }: {
|
||||||
config,
|
|
||||||
self',
|
|
||||||
inputs',
|
|
||||||
pkgs,
|
|
||||||
system,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
devshells.default = {
|
devshells.default = {
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
"php82"
|
"php81"
|
||||||
"php82Packages.composer"
|
"php81Packages.composer"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
formatter = pkgs.alejandra;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,12 +4,12 @@ declare(strict_types=1);
|
||||||
|
|
||||||
namespace App\DataTransferObject;
|
namespace App\DataTransferObject;
|
||||||
|
|
||||||
readonly final class TemplateFile
|
final class TemplateFile
|
||||||
{
|
{
|
||||||
public function __construct(
|
public function __construct(
|
||||||
public string $data,
|
readonly public string $data,
|
||||||
public string $name,
|
readonly public string $name,
|
||||||
public string|null $path = null,
|
readonly public string|null $path = null,
|
||||||
) {
|
) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue