From 5a6bcb37240599d5a51b9b762c45f9488d1a9d5e Mon Sep 17 00:00:00 2001 From: Varun Patil Date: Wed, 14 Sep 2022 11:19:51 -0700 Subject: [PATCH] Add test workflow --- .github/workflows/build.yaml | 28 ------------ .github/workflows/test.yaml | 74 +++++++++++++++++++++++++++++++ lib/Controller/PageController.php | 4 +- 3 files changed, 76 insertions(+), 30 deletions(-) delete mode 100644 .github/workflows/build.yaml create mode 100644 .github/workflows/test.yaml diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml deleted file mode 100644 index 3068c93a..00000000 --- a/.github/workflows/build.yaml +++ /dev/null @@ -1,28 +0,0 @@ -name: Build Vue app - -on: - push: - branches: [ "master" ] - pull_request: - branches: [ "master" ] - -jobs: - build: - runs-on: ubuntu-latest - - strategy: - matrix: - node-version: [18.x] - - steps: - - uses: actions/checkout@v3 - - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node-version }} - - - name: Build - run: | - make dev-setup - make build-js-production diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml new file mode 100644 index 00000000..5547cf4d --- /dev/null +++ b/.github/workflows/test.yaml @@ -0,0 +1,74 @@ +name: Tests + +env: + APP_NAME: memories + +jobs: + phpunit-mysql: + runs-on: ubuntu-latest + + strategy: + # do not stop on another job's failure + fail-fast: false + matrix: + php-versions: ['7.4', '8.1'] + server-versions: ['v24.0.4'] + + services: + mysql: + image: mariadb:10.5 + ports: + - 4444:3306/tcp + env: + MYSQL_ROOT_PASSWORD: rootpassword + options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 5 + + steps: + - name: Enable ONLY_FULL_GROUP_BY MySQL option + run: | + echo "SET GLOBAL sql_mode=(SELECT CONCAT(@@sql_mode,',ONLY_FULL_GROUP_BY'));" | mysql -h 127.0.0.1 -P 4444 -u root -prootpassword + echo "SELECT @@sql_mode;" | mysql -h 127.0.0.1 -P 4444 -u root -prootpassword + + - name: Checkout server + uses: actions/checkout@v3 + with: + submodules: true + repository: nextcloud/server + ref: ${{ matrix.server-versions }} + + - name: Checkout the app + uses: actions/checkout@v3 + with: + path: apps/${{ env.APP_NAME }} + + - name: Use Node.js + uses: actions/setup-node@v3 + with: + node-version: 18.x + + - name: Build Vue + run: | + working-directory: apps/${{ env.APP_NAME }} + make dev-setup + make build-js-production + + - name: Set up php ${{ matrix.php-versions }} + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php-versions }} + tools: phpunit + extensions: mbstring, iconv, fileinfo, intl, mysql, pdo_mysql + coverage: none + + - name: Set up PHPUnit + working-directory: apps/${{ env.APP_NAME }} + run: composer i + + - name: Set up Nextcloud + env: + DB_PORT: 4444 + run: | + mkdir data + ./occ maintenance:install --verbose --database=mysql --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password + ./occ app:enable --force ${{ env.APP_NAME }} + php -S localhost:8080 & diff --git a/lib/Controller/PageController.php b/lib/Controller/PageController.php index 2e2176c3..da77cea1 100644 --- a/lib/Controller/PageController.php +++ b/lib/Controller/PageController.php @@ -13,7 +13,7 @@ use OCP\IUserSession; use OCP\Util; class PageController extends Controller { - protected string $userId; + protected $userId; protected $appName; protected IEventDispatcher $eventDispatcher; private IInitialState $initialState; @@ -23,7 +23,7 @@ class PageController extends Controller { public function __construct( string $AppName, IRequest $request, - string $UserId, + $UserId, IEventDispatcher $eventDispatcher, IInitialState $initialState, IUserSession $userSession,