From 0243763d92ae00b3ce826c25bbe30cf03d3d5538 Mon Sep 17 00:00:00 2001 From: Ferdinand Thiessen Date: Wed, 12 Jun 2024 23:24:28 +0200 Subject: [PATCH] fix: Skip tests if analytics app is not installed Signed-off-by: Ferdinand Thiessen --- .github/workflows/phpunit-mariadb.yml | 2 +- .github/workflows/phpunit-mysql.yml | 2 +- .github/workflows/phpunit-oci.yml | 2 +- .github/workflows/phpunit-pgsql.yml | 2 +- .github/workflows/phpunit-sqlite.yml | 9 ++++++++- .../Unit/Analytics/AnalyticsDatasourceTest.php | 17 ++++++++++++----- 6 files changed, 24 insertions(+), 10 deletions(-) diff --git a/.github/workflows/phpunit-mariadb.yml b/.github/workflows/phpunit-mariadb.yml index 49c182af9..e74fb2929 100644 --- a/.github/workflows/phpunit-mariadb.yml +++ b/.github/workflows/phpunit-mariadb.yml @@ -93,7 +93,7 @@ jobs: with: path: apps/${{ env.APP_NAME }} - - name: Checkout circles dependency + - name: Checkout teams dependency uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 with: repository: nextcloud/circles diff --git a/.github/workflows/phpunit-mysql.yml b/.github/workflows/phpunit-mysql.yml index 752daf488..60d686e73 100644 --- a/.github/workflows/phpunit-mysql.yml +++ b/.github/workflows/phpunit-mysql.yml @@ -91,7 +91,7 @@ jobs: with: path: apps/${{ env.APP_NAME }} - - name: Checkout circles dependency + - name: Checkout teams dependency uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 with: repository: nextcloud/circles diff --git a/.github/workflows/phpunit-oci.yml b/.github/workflows/phpunit-oci.yml index 430929053..297a9aea5 100644 --- a/.github/workflows/phpunit-oci.yml +++ b/.github/workflows/phpunit-oci.yml @@ -104,7 +104,7 @@ jobs: with: path: apps/${{ env.APP_NAME }} - - name: Checkout circles dependency + - name: Checkout teams dependency uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 with: repository: nextcloud/circles diff --git a/.github/workflows/phpunit-pgsql.yml b/.github/workflows/phpunit-pgsql.yml index cd681ffd2..4710a90eb 100644 --- a/.github/workflows/phpunit-pgsql.yml +++ b/.github/workflows/phpunit-pgsql.yml @@ -94,7 +94,7 @@ jobs: with: path: apps/${{ env.APP_NAME }} - - name: Checkout circles dependency + - name: Checkout teams dependency uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 with: repository: nextcloud/circles diff --git a/.github/workflows/phpunit-sqlite.yml b/.github/workflows/phpunit-sqlite.yml index 959cc1610..6d4f9b4da 100644 --- a/.github/workflows/phpunit-sqlite.yml +++ b/.github/workflows/phpunit-sqlite.yml @@ -89,13 +89,20 @@ jobs: with: path: apps/${{ env.APP_NAME }} - - name: Checkout circles dependency + - name: Checkout teams app uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 with: repository: nextcloud/circles ref: ${{ matrix.server-versions }} path: apps/circles + - name: Checkout analytics app + uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + with: + repository: rello/analytics + ref: master + path: apps/analytics + - name: Set up php ${{ matrix.php-versions }} uses: shivammathur/setup-php@fc14643b0a99ee9db10a3c025a33d76544fa3761 # v2 with: diff --git a/tests/Unit/Analytics/AnalyticsDatasourceTest.php b/tests/Unit/Analytics/AnalyticsDatasourceTest.php index fabfb0ebe..c71c228c1 100644 --- a/tests/Unit/Analytics/AnalyticsDatasourceTest.php +++ b/tests/Unit/Analytics/AnalyticsDatasourceTest.php @@ -24,6 +24,7 @@ */ namespace OCA\Forms\Tests\Unit\Analytics; +use OCA\Analytics\Datasource\IDatasource; use OCA\Forms\Analytics\AnalyticsDatasource; use OCA\Forms\Db\FormMapper; use OCA\Forms\Service\FormsService; @@ -35,8 +36,6 @@ class AnalyticsDatasourceTest extends TestCase { - private AnalyticsDatasource $dataSource; - private IL10N|MockObject $l10n; private LoggerInterface|MockObject $logger; private FormMapper|MockObject $formMapper; @@ -45,13 +44,21 @@ class AnalyticsDatasourceTest extends TestCase { public function setUp(): void { parent::setUp(); + + if (!\class_exists(IDatasource::class)) { + $this->markTestSkipped('The analytics app is not installed!'); + return; + } + $this->l10n = $this->createMock(IL10N::class); $this->logger = $this->createMock(LoggerInterface::class); $this->formMapper = $this->createMock(FormMapper::class); $this->formsService = $this->createMock(FormsService::class); $this->submissionService = $this->createMock(SubmissionService::class); + } - $this->dataSource = new AnalyticsDatasource( + protected function mockDatasource() { + return new AnalyticsDatasource( null, $this->l10n, $this->logger, @@ -66,11 +73,11 @@ public function testGetName() { ->expects($this->any()) ->method('t') ->willReturnCallback(fn (string $str) => $str); - $this->assertEquals('Nextcloud Forms', $this->dataSource->getName()); + $this->assertEquals('Nextcloud Forms', $this->mockDatasource()->getName()); } public function testGetId() { - $this->assertEquals(66, $this->dataSource->getId()); + $this->assertEquals(66, $this->mockDatasource()->getId()); } // TODO: Write tests for `getTemplate` and `readData`