Skip to content

Commit

Permalink
Add CI step to drone
Browse files Browse the repository at this point in the history
This moves our content tests to Drone and adds a new
test to make sure the message files are valid json.

Ticket: https://phabricator.wikimedia.org/T254880
  • Loading branch information
Abban committed Feb 29, 2024
1 parent 26d116e commit 987227f
Show file tree
Hide file tree
Showing 3 changed files with 70 additions and 16 deletions.
11 changes: 8 additions & 3 deletions .drone.yml
Expand Up @@ -4,17 +4,22 @@ type: docker
name: default

trigger:
branch:
- test
- production
event:
- push
- tag
- rollback
- promote

steps:
- name: ci
image: composer
commands:
- composer install
- composer ci

- name: deploy
when:
branch: [ test, production ]
image: wikimediade/ansible-deploy
pull: never # Until we publish the image on docker hub
environment:
Expand Down
13 changes: 0 additions & 13 deletions .travis.yml

This file was deleted.

62 changes: 62 additions & 0 deletions tests/Validation/JsonIsValidTest.php
@@ -0,0 +1,62 @@
<?php

declare( strict_types=1 );

namespace WMDE\Fundraising\Content\Tests\Validation;

use PHPUnit\Framework\TestCase;

class JsonIsValidTest extends TestCase {

/**
* @dataProvider jsonFileDataProvider
*/
public function testJsonFilesAreValid( string $file ): void {
json_decode( $file );
$this->assertTrue( json_last_error() === JSON_ERROR_NONE );
}

private function jsonFileDataProvider(): \Generator {
yield [ $this->loadFile( 'de_DE/data/contact_categories.json' ) ];
yield [ $this->loadFile( 'de_DE/data/countries.json' ) ];
yield [ $this->loadFile( 'de_DE/data/faq.json' ) ];
yield [ $this->loadFile( 'de_DE/data/pages.json' ) ];
yield [ $this->loadFile( 'de_DE/data/salutations.json' ) ];
yield [ $this->loadFile( 'de_DE/data/supporters.json' ) ];
yield [ $this->loadFile( 'de_DE/data/use_of_funds_content.json' ) ];
yield [ $this->loadFile( 'de_DE/data/validation.json' ) ];
yield [ $this->loadFile( 'de_DE/messages/daysOfTheWeek.json' ) ];
yield [ $this->loadFile( 'de_DE/messages/mail.json' ) ];
yield [ $this->loadFile( 'de_DE/messages/membershipTypes.json' ) ];
yield [ $this->loadFile( 'de_DE/messages/messages.json' ) ];
yield [ $this->loadFile( 'de_DE/messages/pageTitles.json' ) ];
yield [ $this->loadFile( 'de_DE/messages/paymentIntervals.json' ) ];
yield [ $this->loadFile( 'de_DE/messages/paymentProvider.json' ) ];
yield [ $this->loadFile( 'de_DE/messages/paymentStatus.json' ) ];
yield [ $this->loadFile( 'de_DE/messages/paymentTypes.json' ) ];
yield [ $this->loadFile( 'de_DE/messages/siteMetadata.json' ) ];

yield [ $this->loadFile( 'en_GB/data/contact_categories.json' ) ];
yield [ $this->loadFile( 'en_GB/data/countries.json' ) ];
yield [ $this->loadFile( 'en_GB/data/faq.json' ) ];
yield [ $this->loadFile( 'en_GB/data/pages.json' ) ];
yield [ $this->loadFile( 'en_GB/data/salutations.json' ) ];
yield [ $this->loadFile( 'en_GB/data/supporters.json' ) ];
yield [ $this->loadFile( 'en_GB/data/use_of_funds_content.json' ) ];
yield [ $this->loadFile( 'en_GB/data/validation.json' ) ];
yield [ $this->loadFile( 'en_GB/messages/daysOfTheWeek.json' ) ];
yield [ $this->loadFile( 'en_GB/messages/mail.json' ) ];
yield [ $this->loadFile( 'en_GB/messages/membershipTypes.json' ) ];
yield [ $this->loadFile( 'en_GB/messages/messages.json' ) ];
yield [ $this->loadFile( 'en_GB/messages/pageTitles.json' ) ];
yield [ $this->loadFile( 'en_GB/messages/paymentIntervals.json' ) ];
yield [ $this->loadFile( 'en_GB/messages/paymentProvider.json' ) ];
yield [ $this->loadFile( 'en_GB/messages/paymentStatus.json' ) ];
yield [ $this->loadFile( 'en_GB/messages/paymentTypes.json' ) ];
yield [ $this->loadFile( 'en_GB/messages/siteMetadata.json' ) ];
}

private function loadFile( string $path ): string {
return file_get_contents( __DIR__ . '/../../i18n/' . $path );
}
}

0 comments on commit 987227f

Please sign in to comment.