mirror of
https://github.com/opensourcepos/opensourcepos.git
synced 2026-09-13 13:57:34 -04:00
* Implement atomic updates for gift card and reward point decrements, enhance error handling for insufficient balances, and add regression tests for concurrency safety. * Add translations for insufficient gift card balance and reward points error messages across all supported languages. * Reorder `clear_suspended_sale_detail` call to ensure transactional consistency. * Reorder `clear_all` call to align with success and error handling logic. * Ensure soft-deleted gift cards are excluded in balance updates. * Refactor change_quantity logic with atomic upserts, improve error handling for insufficient stock, and update related tests and constants. * Added check for NEW_ENTRY * Added unit tests to test changes. * Fix class name casing in ItemQuantityTest for consistency. * Fix Bulgarian translations for insufficient balance error messages in Sales module. * Fix Greek translations for insufficient balance error messages in Sales module. * Fix Armenian translations for insufficient balance error messages in Sales module. * Fix Tamil translations for insufficient balance error messages in Sales module. * Implement race condition testing for database methods with concurrent process support. * Fix class name casing in ItemTest for consistency. * Improve concurrent process handling in race condition tests; add readiness and synchronization barriers. * Improve handling of process I/O streams and timeout management in race condition tests. * Add test for decrementing gift card value when marked as deleted * Add `finally` block to ensure proper cleanup in async database race condition tests * Improve error handling and timeout management in async database race condition tests. * Refactor test utilities to use shared `EmployeeFixtureTrait` and `ItemFixtureTrait`. * Track process exit codes explicitly in race condition tests for improved error detection and debugging. * Improve error handling in `ConcurrentDbRaceTrait` by adding exceptions for `mysqli_poll` and `mysqli_reap_async_query`. Signed-off-by: objecttothis <17935339+objecttothis@users.noreply.github.com> --------- Signed-off-by: objecttothis <17935339+objecttothis@users.noreply.github.com>
56 lines
2.0 KiB
XML
56 lines
2.0 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<phpunit
|
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/10.5/phpunit.xsd"
|
|
bootstrap="vendor/codeigniter4/framework/system/Test/bootstrap.php"
|
|
backupGlobals="false"
|
|
beStrictAboutOutputDuringTests="true"
|
|
colors="true"
|
|
columns="max"
|
|
failOnRisky="true"
|
|
failOnWarning="true"
|
|
cacheDirectory="build/.phpunit.cache">
|
|
<coverage
|
|
includeUncoveredFiles="true"
|
|
pathCoverage="false"
|
|
ignoreDeprecatedCodeUnits="true"
|
|
disableCodeCoverageIgnore="true">
|
|
<report>
|
|
<clover outputFile="build/logs/clover.xml"/>
|
|
<html outputDirectory="build/logs/html"/>
|
|
<php outputFile="build/logs/coverage.serialized"/>
|
|
<text outputFile="php://stdout" showUncoveredFiles="false"/>
|
|
</report>
|
|
</coverage>
|
|
<testsuites>
|
|
<testsuite name="App">
|
|
<directory>./tests</directory>
|
|
</testsuite>
|
|
</testsuites>
|
|
<logging>
|
|
<testdoxHtml outputFile="build/logs/testdox.html"/>
|
|
<testdoxText outputFile="build/logs/testdox.txt"/>
|
|
<junit outputFile="build/logs/logfile.xml"/>
|
|
</logging>
|
|
<source>
|
|
<include>
|
|
<directory suffix=".php">./app</directory>
|
|
</include>
|
|
<exclude>
|
|
<directory suffix=".php">./app/Views</directory>
|
|
<file>./app/Config/Routes.php</file>
|
|
</exclude>
|
|
</source>
|
|
<php>
|
|
<server name="app.baseURL" value="http://example.com/"/>
|
|
<server name="CODEIGNITER_SCREAM_DEPRECATIONS" value="0"/>
|
|
<!-- Directory containing phpunit.xml -->
|
|
<const name="HOMEPATH" value="./"/>
|
|
<!-- Directory containing the Paths config file -->
|
|
<const name="CONFIGPATH" value="./app/Config/"/>
|
|
<!-- Directory containing the front controller (index.php) -->
|
|
<const name="PUBLICPATH" value="./public/"/>
|
|
<!-- Database configuration for testing: provided by .env (database.tests.*) -->
|
|
</php>
|
|
</phpunit>
|