From 32d2a170be4020ecbd1e48779fdda005f110d4eb Mon Sep 17 00:00:00 2001
From: Rhys Lees <43909932+RhysLees@users.noreply.github.com>
Date: Thu, 8 Feb 2024 23:56:18 +0000
Subject: [PATCH] WIP
---
.github/ISSUE_TEMPLATE/bug.yml | 52 +++++++++++++++++++
.github/ISSUE_TEMPLATE/config.yml | 15 +++---
.github/workflows/dependabot-auto-merge.yml | 10 ++--
.github/workflows/dependency-review.yml | 20 +++++++
...ixer.yml => fix-php-code-style-issues.yml} | 15 ++----
.github/workflows/phpstan.yml | 12 ++---
.github/workflows/run-tests.yml | 28 ++++++----
.gitignore | 1 +
README.md | 12 ++++-
composer.json | 31 +++++------
src/Client/PostfinanceClientFactory.php | 3 +-
tests/Feature/GetInvoiceListPayerTest.php | 3 +-
tests/Feature/GetInvoicePayerTest.php | 3 +-
tests/Feature/PingTest.php | 5 +-
14 files changed, 145 insertions(+), 65 deletions(-)
create mode 100644 .github/ISSUE_TEMPLATE/bug.yml
create mode 100644 .github/workflows/dependency-review.yml
rename .github/workflows/{php-cs-fixer.yml => fix-php-code-style-issues.yml} (54%)
diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml
new file mode 100644
index 0000000..52f37d5
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug.yml
@@ -0,0 +1,52 @@
+name: Bug Report
+description: Report an Issue or Bug with the Package
+title: "[Bug]: "
+labels: ["bug"]
+body:
+ - type: markdown
+ attributes:
+ value: |
+ We're sorry to hear you have a problem. Can you help us solve it by providing the following details.
+ - type: textarea
+ id: what-happened
+ attributes:
+ label: What happened?
+ description: What did you expect to happen?
+ placeholder: I cannot currently do X thing because when I do, it breaks X thing.
+ validations:
+ required: true
+
+ - type: input
+ id: package-version
+ attributes:
+ label: Package Version
+ description: What version of our Package are you running? Please be as specific as possible
+ placeholder: 2.0.0
+ validations:
+ required: true
+ - type: input
+ id: php-version
+ attributes:
+ label: PHP Version
+ description: What version of PHP are you running? Please be as specific as possible
+ placeholder: 8.2.0
+ validations:
+ required: true
+ - type: input
+ id: laravel-version
+ attributes:
+ label: Laravel Version
+ description: What version of Laravel are you running? Please be as specific as possible
+ placeholder: 9.0.0
+ validations:
+ required: true
+ - type: dropdown
+ id: operating-systems
+ attributes:
+ label: Which operating systems does with happen with?
+ description: You may select more than one.
+ multiple: true
+ options:
+ - macOS
+ - Windows
+ - Linux
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
index b4e8146..e5264a1 100644
--- a/.github/ISSUE_TEMPLATE/config.yml
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -1,11 +1,8 @@
blank_issues_enabled: false
contact_links:
- - name: Ask a question
- url: https://github.com/codebar-ag/laravel-flatfox/discussions/new?category=q-a
- about: Ask the community for help
- - name: Request a feature
- url: https://github.com/codebar-ag/laravel-flatfox/discussions/new?category=ideas
- about: Share ideas for new features
- - name: Report a bug
- url: https://github.com/codebar-ag/laravel-flatfox/issues/new
- about: Report a reproducable bug
+ - name: Questions & Feature Requests
+ url: https://github.com/codebar-ag/laravel-postfinance-b2b/issues/new
+ about: Ask the community for help
+ - name: Report a security issue
+ url: https://github.com/codebar-ag/laravel-postfinance-b2b/security/policy
+ about: Learn how to notify us for sensitive bugs
diff --git a/.github/workflows/dependabot-auto-merge.yml b/.github/workflows/dependabot-auto-merge.yml
index 14da349..3451cb2 100644
--- a/.github/workflows/dependabot-auto-merge.yml
+++ b/.github/workflows/dependabot-auto-merge.yml
@@ -1,3 +1,4 @@
+
name: dependabot-auto-merge
on: pull_request_target
@@ -10,20 +11,21 @@ jobs:
runs-on: ubuntu-latest
if: ${{ github.actor == 'dependabot[bot]' }}
steps:
-
+
- name: Dependabot metadata
id: metadata
- uses: dependabot/fetch-metadata@v1.3.3
+
+ uses: dependabot/fetch-metadata@v1.4.0
with:
github-token: "${{ secrets.GITHUB_TOKEN }}"
-
+
- name: Auto-merge Dependabot PRs for semver-minor updates
if: ${{steps.metadata.outputs.update-type == 'version-update:semver-minor'}}
run: gh pr merge --auto --merge "$PR_URL"
env:
PR_URL: ${{github.event.pull_request.html_url}}
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
-
+
- name: Auto-merge Dependabot PRs for semver-patch updates
if: ${{steps.metadata.outputs.update-type == 'version-update:semver-patch'}}
run: gh pr merge --auto --merge "$PR_URL"
diff --git a/.github/workflows/dependency-review.yml b/.github/workflows/dependency-review.yml
new file mode 100644
index 0000000..b0dedc4
--- /dev/null
+++ b/.github/workflows/dependency-review.yml
@@ -0,0 +1,20 @@
+# Dependency Review Action
+#
+# This Action will scan dependency manifest files that change as part of a Pull Request, surfacing known-vulnerable versions of the packages declared or updated in the PR. Once installed, if the workflow run is marked as required, PRs introducing known-vulnerable packages will be blocked from merging.
+#
+# Source repository: https://github.com/actions/dependency-review-action
+# Public documentation: https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review#dependency-review-enforcement
+name: 'Dependency Review'
+on: [pull_request]
+
+permissions:
+ contents: read
+
+jobs:
+ dependency-review:
+ runs-on: ubuntu-latest
+ steps:
+ - name: 'Checkout Repository'
+ uses: actions/checkout@v3
+ - name: 'Dependency Review'
+ uses: actions/dependency-review-action@v3
diff --git a/.github/workflows/php-cs-fixer.yml b/.github/workflows/fix-php-code-style-issues.yml
similarity index 54%
rename from .github/workflows/php-cs-fixer.yml
rename to .github/workflows/fix-php-code-style-issues.yml
index 3517cf1..cc0c956 100644
--- a/.github/workflows/php-cs-fixer.yml
+++ b/.github/workflows/fix-php-code-style-issues.yml
@@ -1,12 +1,9 @@
-name: Check & fix styling
+name: Fix PHP code style issues
-on:
- push:
- branches:
- - styling
+on: [push]
jobs:
- php-cs-fixer:
+ php-code-styling:
runs-on: ubuntu-latest
steps:
@@ -15,10 +12,8 @@ jobs:
with:
ref: ${{ github.head_ref }}
- - name: Run PHP CS Fixer
- uses: docker://oskarstark/php-cs-fixer-ga
- with:
- args: --config=.php-cs-fixer.dist.php --allow-risky=yes
+ - name: Fix PHP code style issues
+ uses: aglipanci/laravel-pint-action@2.2.0
- name: Commit changes
uses: stefanzweifel/git-auto-commit-action@v4
diff --git a/.github/workflows/phpstan.yml b/.github/workflows/phpstan.yml
index 557d263..090fd83 100644
--- a/.github/workflows/phpstan.yml
+++ b/.github/workflows/phpstan.yml
@@ -2,9 +2,9 @@ name: PHPStan
on:
push:
- paths:
- - '**.php'
- - 'phpstan.neon.dist'
+ branches: [ main ]
+ pull_request:
+ branches: [ main ]
jobs:
phpstan:
@@ -16,11 +16,11 @@ jobs:
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
- php-version: '8.1'
+ php-version: '8.2'
coverage: none
- name: Install composer dependencies
- uses: ramsey/composer-install@v1
+ uses: ramsey/composer-install@v2
- name: Run PHPStan
- run: ./vendor/bin/phpstan --error-format=github
+ run: ./vendor/bin/phpstan analyse src --error-format=github
diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml
index bff3889..3ca5518 100644
--- a/.github/workflows/run-tests.yml
+++ b/.github/workflows/run-tests.yml
@@ -11,16 +11,15 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: true
+ max-parallel: 1
matrix:
- # os: [ ubuntu-latest, windows-latest ]
- os: [ ubuntu-latest ]
- php: [ 8.1 ]
- laravel: [ 9.* ]
- #stability: [ prefer-lowest, prefer-stable ]
- stability: [ prefer-stable ]
+ os: [ ubuntu-latest, windows-latest ]
+ php: [ 8.2, 8.3 ]
+ laravel: [ 10.* ]
+ stability: [ prefer-lowest, prefer-stable ]
include:
- - laravel: 9.*
- testbench: 7.*
+ - laravel: 10.*
+ testbench: 8.*
name: P${{ matrix.php }} - L${{ matrix.laravel }} - ${{ matrix.stability }} - ${{ matrix.os }}
@@ -45,12 +44,19 @@ jobs:
composer require "laravel/framework:${{ matrix.laravel }}" "orchestra/testbench:${{ matrix.testbench }}" --no-interaction --no-update
composer update --${{ matrix.stability }} --prefer-dist --no-interaction
+ - name: Set phpunit.xml
+ run: cp phpunit.xml.dist phpunit.xml
+
- name: Execute tests
run: vendor/bin/pest
env:
- ZAMMAD_URL: ${{ secrets.ZAMMAD_URL }}
- ZAMMAD_TOKEN: ${{ secrets.ZAMMAD_TOKEN }}
- ZAMMAD_OBJECT_REFERENCE_ERROR_IGNORE: true
+ POSTFINANCE_B2B_USERNAME: ${{ secrets.POSTFINANCE_B2B_USERNAME }}
+ POSTFINANCE_B2B_PASSWORD: ${{ secrets.POSTFINANCE_B2B_PASSWORD }}
+ POSTFINANCE_B2B_DEBUG: ${{ secrets.POSTFINANCE_B2B_DEBUG }}
+ POSTFINANCE_B2B_TESTS_PAYER_ID: ${{ secrets.POSTFINANCE_B2B_TESTS_PAYER_ID }}
+ POSTFINANCE_B2B_TESTS_BILLER_ID: ${{ secrets.POSTFINANCE_B2B_TESTS_BILLER_ID }}
+ POSTFINANCE_B2B_TESTS_TRANSACTION_ID: ${{ secrets.POSTFINANCE_B2B_TESTS_TRANSACTION_ID }}
+ POSTFINANCE_B2B_TESTS_FILE_TYPE: ${{ secrets.POSTFINANCE_B2B_TESTS_FILE_TYPE }}
- name: Store test reports
uses: actions/upload-artifact@v2
diff --git a/.gitignore b/.gitignore
index d16f891..a510a25 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,6 +3,7 @@
.php_cs.cache
.php-cs-fixer.cache
.phpunit.result.cache
+.phpunit.cache
.DS_STORE
build
composer.lock
diff --git a/README.md b/README.md
index 2fc1e9b..9ecc179 100644
--- a/README.md
+++ b/README.md
@@ -12,8 +12,16 @@ cp phpunit.xml.dist phpunit.xml
Modify environment variables in the phpunit.xml-file:
```xml
-
-
+
+
+
+
+
+
+
+
+
+
```
Run the tests:
diff --git a/composer.json b/composer.json
index db13cc9..a7264ce 100644
--- a/composer.json
+++ b/composer.json
@@ -19,31 +19,32 @@
}
],
"require": {
- "php": "^8.2",
+ "php": "^8.2|^8.3",
"ext-soap": "*",
"ext-xsl": "*",
- "guzzlehttp/guzzle": "^7.5",
+ "guzzlehttp/guzzle": "^7.8",
"illuminate/contracts": "^10.0",
"monolog/monolog": "^3.5",
"nyholm/psr7": "^1.8",
"php-http/logger-plugin": "^1.3",
"php-soap/psr18-wsse-middleware": "^2.3",
"phpro/soap-client": "^3.1",
- "spatie/laravel-package-tools": "^1.9.2",
- "symfony/http-client": "^6.2"
+ "spatie/laravel-package-tools": "^1.16",
+ "symfony/http-client": "^6.4"
},
"require-dev": {
- "laravel/pint": "^1.5",
- "nunomaduro/collision": "^7.0",
- "nunomaduro/larastan": "^2.4.0",
- "orchestra/testbench": "^8.0",
- "pestphp/pest": "2.x-dev",
- "pestphp/pest-plugin-laravel": "2.x-dev",
- "phpstan/extension-installer": "^1.1",
- "phpstan/phpstan-deprecation-rules": "^1.0",
- "phpstan/phpstan-phpunit": "^1.0",
- "phpunit/phpunit": "^10.0",
- "spatie/laravel-ray": "^1.9"
+ "laravel/pint": "^1.13",
+ "nunomaduro/collision": "^7.10",
+ "nunomaduro/larastan": "^2.8",
+ "orchestra/testbench": "^8.21",
+ "pestphp/pest": "^2.3",
+ "pestphp/pest-plugin-laravel": "^2.2",
+ "pestphp/pest-plugin-arch": "^2.6",
+ "phpstan/extension-installer": "^1.3",
+ "phpstan/phpstan-deprecation-rules": "^1.1",
+ "phpstan/phpstan-phpunit": "^1.3",
+ "phpunit/phpunit": "^10.5",
+ "spatie/laravel-ray": "^1.35"
},
"autoload": {
"psr-4": {
diff --git a/src/Client/PostfinanceClientFactory.php b/src/Client/PostfinanceClientFactory.php
index 0e55445..bf73a3c 100644
--- a/src/Client/PostfinanceClientFactory.php
+++ b/src/Client/PostfinanceClientFactory.php
@@ -12,7 +12,6 @@
use Phpro\SoapClient\Caller\EngineCaller;
use Phpro\SoapClient\Caller\EventDispatchingCaller;
use Phpro\SoapClient\Soap\DefaultEngineFactory;
-use function Psl\invariant;
use Soap\ExtSoapEngine\ExtSoapOptions;
use Soap\Psr18Transport\Middleware\RemoveEmptyNodesMiddleware;
use Soap\Psr18Transport\Psr18Transport;
@@ -21,6 +20,8 @@
use Soap\Psr18WsseMiddleware\WsseMiddleware;
use Symfony\Component\EventDispatcher\EventDispatcher;
+use function Psl\invariant;
+
class PostfinanceClientFactory
{
/**
diff --git a/tests/Feature/GetInvoiceListPayerTest.php b/tests/Feature/GetInvoiceListPayerTest.php
index ca7d9e5..3218a07 100644
--- a/tests/Feature/GetInvoiceListPayerTest.php
+++ b/tests/Feature/GetInvoiceListPayerTest.php
@@ -12,5 +12,4 @@
$response = $client->getInvoiceListPayer(new GetInvoiceListPayer($payerId, false));
expect($response->getGetInvoiceListPayerResult()->getInvoiceReport())->toBeIterable();
-})
- ->group('get', 'test');
+})->group('get', 'test');
diff --git a/tests/Feature/GetInvoicePayerTest.php b/tests/Feature/GetInvoicePayerTest.php
index 2fc2b25..5946abd 100644
--- a/tests/Feature/GetInvoicePayerTest.php
+++ b/tests/Feature/GetInvoicePayerTest.php
@@ -18,5 +18,4 @@
$response = $client->getInvoicePayer(new GetInvoicePayer($payerId, $billerId, $transactionId, $fileType));
expect($response->getGetInvoicePayerResult()->getData())->toBeString()->not()->toBeEmpty();
-})
- ->group('get', 'test');
+})->group('get', 'test');
diff --git a/tests/Feature/PingTest.php b/tests/Feature/PingTest.php
index aa361a1..89d4089 100644
--- a/tests/Feature/PingTest.php
+++ b/tests/Feature/PingTest.php
@@ -11,7 +11,6 @@
$client = PostfinanceClientFactory::factory($config);
$response = $client->executePing(new ExecutePing(null, $payerId, null, null));
- expect($response->getExecutePingResult())->toBeNumeric();
-})
- ->group('get', 'test');
+ expect($response->getExecutePingResult())->toBeNumeric();
+})->group('get', 'test');