<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.5/phpunit.xsd"
		bootstrap="vendor/codeigniter4/framework/system/Test/bootstrap.php"
		backupGlobals="false"
		beStrictAboutCoversAnnotation="true"
		beStrictAboutOutputDuringTests="true"
		beStrictAboutTodoAnnotatedTests="true"
		colors="true"
		convertErrorsToExceptions="true"
		convertNoticesToExceptions="true"
		convertWarningsToExceptions="true"
		executionOrder="random"
		failOnRisky="true"
		failOnWarning="true"
		stopOnError="false"
		stopOnFailure="false"
		stopOnIncomplete="false"
		stopOnSkipped="false"
		verbose="true">

	<coverage includeUncoveredFiles="true" processUncoveredFiles="true">
		<include>
			<directory suffix=".php">./src/</directory>
		</include>
		<exclude>
			<directory suffix=".php">./src/Config</directory>
			<directory suffix=".php">./src/Views</directory>
			<directory suffix=".php">./src/Language</directory>
		</exclude>
		<report>
			<clover outputFile="build/phpunit/clover.xml"/>
			<html outputDirectory="build/phpunit/html"/>
			<php outputFile="build/phpunit/coverage.serialized"/>
			<text outputFile="php://stdout" showUncoveredFiles="false"/>
			<xml outputDirectory="build/phpunit/xml-coverage"/>
		</report>
	</coverage>

	<testsuites>
		<testsuite name="main">
			<directory>./tests</directory>
            <exclude>./tests/Language</exclude>
		</testsuite>
		<testsuite name="lang">
			<directory>./tests/Language</directory>
		</testsuite>
	</testsuites>

	<extensions>
		<extension class="Nexus\PHPUnit\Extension\Tachycardia">
			<arguments>
				<array>
					<element key="timeLimit">
						<double>0.50</double>
					</element>
					<element key="reportable">
						<integer>30</integer>
					</element>
					<element key="precision">
						<integer>2</integer>
					</element>
					<element key="collectBare">
						<boolean>true</boolean>
					</element>
					<element key="tabulate">
						<boolean>true</boolean>
					</element>
				</array>
			</arguments>
		</extension>
	</extensions>

	<logging>
		<testdoxHtml outputFile="build/phpunit/testdox.html"/>
		<testdoxText outputFile="build/phpunit/testdox.txt"/>
		<junit outputFile="build/phpunit/junit.xml"/>
	</logging>

	<php>
		<env name="XDEBUG_MODE" value="coverage"/>
		<!-- Set hashCost for improving the speed of running tests -->
		<env name="auth.hashCost" value="4"/>
		<server name="app.baseURL" value="https://example.com/"/>

		<!-- Directory containing phpunit.xml -->
		<const name="HOMEPATH" value="./"/>

		<!-- Directory containing the Paths config file -->
		<const name="CONFIGPATH" value="./vendor/codeigniter4/framework/app/Config/"/>

		<!-- Directory containing the front controller (index.php) -->
		<const name="PUBLICPATH" value="./vendor/codeigniter4/framework/public/"/>

		<!-- https://getcomposer.org/xdebug -->
		<env name="COMPOSER_DISABLE_XDEBUG_WARN" value="1"/>

        <!-- Default HMAC encryption key -->
        <env name="authtoken.hmacEncryptionKeys" value="{&quot;k1&quot;:{&quot;key&quot;:&quot;hex2bin:178ed94fd0b6d57dd31dd6b22fc601fab8ad191efac165a5f3f30a8ac09d813d&quot;},&quot;k2&quot;:{&quot;key&quot;:&quot;hex2bin:b0ab85bd0320824c496db2f40eb47c8712a6dfcfdf99b805988e22bdea6b9203&quot;}}"/>

        <!-- Database configuration -->
		<env name="database.tests.strictOn" value="true"/>
		<!-- Uncomment to use alternate testing database configuration
		<env name="database.tests.hostname" value="localhost"/>
		<env name="database.tests.database" value="tests"/>
		<env name="database.tests.username" value="tests_user"/>
		<env name="database.tests.password" value=""/>
		<env name="database.tests.DBDriver" value="MySQLi"/>
		<env name="database.tests.DBPrefix" value="tests_"/>
		-->
	</php>
</phpunit>
