Files
Adam Daley dd3dcbfd52 Enhance type safety, authentication checks, and testing framework (#3701)
* Improve type safety, auth checks and PHPStan fixes (#3250)

* Improve type safety, auth checks and PHPStan fixes

* Remove @phpstan-ignore annotations

* Improve type safety, auth checks and PHPStan fixes

* Remove @phpstan-ignore annotations

* Remove redundant @phpstan-ignore comment

* Improve code robustness and reliability (#3248)

* Harden code against null/undefined values

* Update dependency lockfiles

* Sanitize ticket input and use IDs in email list

* Restructure tests and add test utilities

* Move E2E tests to `Library\E2E` namespace

* Update `php-build` action ref in workflows

* Switch tests to Pest and add test scaffolding

* Refactor E2E tests to Pest-style tests

m

Skip E2E tests when env not configured

* Refactor Unit tests and update test config

Add test datasets and refine test helpers

* Add DEBUG guard, fix API JSON decode, update tests

* Refactor tests: add types and Mockery expectations

* Adjust tests, phpstan config, and composer script

* Instantiate test APIs locally, remove beforeEach

* Refactor runtime checks, types & logging

* Apply PHP Code Styling Changes

m

* Add PHPStan ignores, test renames & small fixes

* Enable Pest tests in CI workflow

* Remove legacy tests; add new unit tests/config

* Avoid undefined index in fingerprint comparison

* Ignore properties absent in both fingerprints

* Remove public_ticket_create API method

* Add Fingerprint unit tests

* Remove em dash from fingerprint test name

* Switch to Pest; assorted bug fixes & refactors

* Prefer getDi() and guard DEBUG define

* Refactor tests: DBAL, Antispam rename, helpers

* Refactor email tests to use Doctrine entities

* Update tests, use DBAL mocks & improve Formbuilder admin

* Validate plan_id and update unit tests

* Replace error_log with DI logger and update tests

* Expect db->store in Invoice Service test

* Use DI logger instead of error_log; fix tests

* Fix typo in Hook Service test

* Fix Staff test spelling fixture

* Complete Pest test migration

* Fix Product test spelling fixtures

* Fix Product test spelling fixtures

* Run live tests with Pest and load helpers

* Migrate tests to ApiClient; remove legacy APIHelper

* Fix Email test spelling

* Remove unused PHPUnit bridge

* Organize Cypress end-to-end tests

* Document Pest test directory root

* Remove noisy Pest comments
2026-06-02 07:43:01 +01:00

83 lines
1.6 KiB
PHP

<?php
/**
* Copyright 2022-2026 FOSSBilling
* SPDX-License-Identifier: Apache-2.0.
*
* @copyright FOSSBilling (https://www.fossbilling.org)
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache-2.0
*/
declare(strict_types=1);
namespace Tests\Datasets;
/**
* Common country codes (ISO 3166-1 alpha-2).
*
* @return array<int, string>
*/
function countryCodes(): array
{
return [
'US', // United States
'GB', // United Kingdom
'CA', // Canada
'AU', // Australia
'DE', // Germany
'FR', // France
'ES', // Spain
'IT', // Italy
'NL', // Netherlands
'JP', // Japan
'CN', // China
'IN', // India
'BR', // Brazil
'MX', // Mexico
'RU', // Russia
'ZA', // South Africa
];
}
/**
* Common currency codes (ISO 4217).
*
* @return array<int, string>
*/
function currencyCodes(): array
{
return [
'USD', // US Dollar
'EUR', // Euro
'GBP', // British Pound
'JPY', // Japanese Yen
'CAD', // Canadian Dollar
'AUD', // Australian Dollar
'CHF', // Swiss Franc
'CNY', // Chinese Yuan
'INR', // Indian Rupee
'BRL', // Brazilian Real
'MXN', // Mexican Peso
'RUB', // Russian Ruble
'ZAR', // South African Rand
];
}
/**
* Currency data with code and rate pairs.
*
* @return array<int, array{0: string, 1: float}>
*/
function currencyRates(): array
{
return [
['USD', 1.0],
['EUR', 0.85],
['GBP', 0.73],
['JPY', 110.0],
['CAD', 1.25],
['AUD', 1.35],
['CHF', 0.92],
];
}