summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2023-10-29 08:58:13 +0300
committerAndrew Dolgov <[email protected]>2023-10-29 09:14:18 +0300
commit8b72d9ab1143416ca28ff3ab1230eb575ee63ace (patch)
treebeab0d5c88b9cf29ff91c8bb3f413ca8912270bc
parent855695a8620a3a5ffada836fd28e04bb912bbd3a (diff)
add phpunit integration (wip)
-rw-r--r--.gitlab-ci.yml18
-rw-r--r--tests/integration/ApiTest.php15
2 files changed, 23 insertions, 10 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 900dcae7b..ce7be8695 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -61,7 +61,7 @@ phpdoc:
chmod 0600 ~/.ssh/id_ed25519
- rsync -av -e 'ssh -o StrictHostKeyChecking=no' phpdoc/ ${PHPDOC_DEPLOY_HOST}:phpdoc/
-integration-test:
+selenium:
image: ${SELENIUM_IMAGE}
variables:
TEST_HELM_REPO: https://gitlab.tt-rss.org/tt-rss/helm-charts/tt-rss
@@ -73,8 +73,20 @@ integration-test:
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
-integration-test:branch:
- extends: integration-test
+selenium:branch:
+ extends: selenium
+ rules:
+ - if: $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH && $CI_REGISTRY_USER != null
+ when: manual
+
+phpunit-integration:branch:
+ image: ${PHP_IMAGE}
+ extends: selenium
+ script:
+ - export K8S_NAMESPACE=$(kubectl get pods -o=custom-columns=NS:.metadata.namespace | tail -1)
+ - export API_URL="http://tt-rss-${CI_COMMIT_SHORT_SHA}-app.$K8S_NAMESPACE.svc.cluster.local/tt-rss/api/"
+ - env
+ - php82 vendor/bin/phpunit --group integration
rules:
- if: $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH && $CI_REGISTRY_USER != null
diff --git a/tests/integration/ApiTest.php b/tests/integration/ApiTest.php
index cd7a8d67a..8f0759e68 100644
--- a/tests/integration/ApiTest.php
+++ b/tests/integration/ApiTest.php
@@ -7,18 +7,18 @@ final class ApiTest extends TestCase {
/** @var string */
private $api_url;
- /** @var string */
- private $sid;
-
function __construct() {
- $this->api_url = $_ENV['API_URL'];
+ $this->api_url = getenv('API_URL');
print_r($this->api_url);
parent::__construct();
}
+ /** @param array<mixed> $payload
+ * @return array<mixed>
+ */
function api(array $payload) : ?array {
$ch = curl_init($this->api_url);
@@ -37,18 +37,19 @@ final class ApiTest extends TestCase {
return json_decode($response, true);
}
- public function common_assertions(array $response) {
+ /** @param array<mixed> $response */
+ public function common_assertions(array $response) : void {
$this->assertArrayHasKey("content", $response);
$this->assertArrayNotHasKey("error", $response['content'], $response['content']['error']);
}
- public function test_login() {
+ public function test_login() : void {
$response = $this->api(["op" => "login", "user" => "test", "password" => "test"]);
$this->common_assertions($response);
}
- public function test_getVersion() {
+ public function test_getVersion() : void {
$response = $this->api(["op" => "getVersion"]);