From fe916c2dac5d0909e7f04165919658360b0d296a Mon Sep 17 00:00:00 2001 From: Noel De Martin Date: Thu, 7 Jul 2022 09:46:32 +0200 Subject: [PATCH 1/3] MOBILE-4110 ci: Fix node versions --- .github/workflows/acceptance.yml | 6 ++---- .github/workflows/migration.yml | 7 +++---- .github/workflows/performance.yml | 6 ++---- .github/workflows/testing.yml | 5 ++--- .github/workflows/update_behat_plugin.yml | 2 ++ 5 files changed, 11 insertions(+), 15 deletions(-) diff --git a/.github/workflows/acceptance.yml b/.github/workflows/acceptance.yml index 2972bbf1d..cbcd78e41 100644 --- a/.github/workflows/acceptance.yml +++ b/.github/workflows/acceptance.yml @@ -32,11 +32,9 @@ jobs: BEHAT_TAGS: ${{ github.event.inputs.behat_tags || '~@performance' }} steps: - uses: actions/checkout@v2 - - id: nvmrc - uses: browniebroke/read-nvmrc-action@v1 - - uses: actions/setup-node@v1 + - uses: actions/setup-node@v3 with: - node-version: '${{ steps.nvmrc.outputs.node_version }}' + node-version-file: '.nvmrc' - name: Additional checkouts run: | git clone --branch $MOODLE_BRANCH --depth 1 $MOODLE_REPOSITORY $GITHUB_WORKSPACE/moodle diff --git a/.github/workflows/migration.yml b/.github/workflows/migration.yml index 585b297c0..360a4361b 100644 --- a/.github/workflows/migration.yml +++ b/.github/workflows/migration.yml @@ -9,11 +9,10 @@ jobs: steps: - uses: actions/checkout@v2 - - name: Use Node.js - uses: actions/setup-node@v1 + - uses: actions/setup-node@v3 with: - node-version: '14.x' - - run: npm ci + node-version-file: '.nvmrc' + - run: npm ci --no-audit - run: result=$(find src -type f -iname '*.html' -exec sh -c 'cat {} | tr "\n" " " | grep -Eo "class=\"[^\"]+\"[^>]+class=\"" ' \; | wc -l); test $result -eq 0 - run: npm install -D @ionic/v4-migration-tslint - run: npx tslint -c ionic-migration.json -p tsconfig.json diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index b4fe6a50c..fb88afced 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -11,11 +11,9 @@ jobs: MOODLE_DOCKER_PHP_VERSION: 7.3 steps: - uses: actions/checkout@v2 - - id: nvmrc - uses: browniebroke/read-nvmrc-action@v1 - - uses: actions/setup-node@v1 + - uses: actions/setup-node@v3 with: - node-version: '${{ steps.nvmrc.outputs.node_version }}' + node-version-file: '.nvmrc' - name: Additional checkouts run: | git clone --branch master --depth 1 https://github.com/moodle/moodle $GITHUB_WORKSPACE/moodle diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml index be8f69727..415a873cb 100644 --- a/.github/workflows/testing.yml +++ b/.github/workflows/testing.yml @@ -9,10 +9,9 @@ jobs: steps: - uses: actions/checkout@v2 - - name: Use Node.js - uses: actions/setup-node@v1 + - uses: actions/setup-node@v3 with: - node-version: '14' + node-version-file: '.nvmrc' - name: Install npm packages run: npm ci --no-audit - name: Check langindex diff --git a/.github/workflows/update_behat_plugin.yml b/.github/workflows/update_behat_plugin.yml index 1f6430a6a..4573920b6 100644 --- a/.github/workflows/update_behat_plugin.yml +++ b/.github/workflows/update_behat_plugin.yml @@ -8,6 +8,8 @@ jobs: steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v3 + with: + node-version-file: '.nvmrc' - name: Install npm packages run: npm ci --no-audit - name: Update Behat plugin From aa7cf575e3606c14a96f6147719c112c43520811 Mon Sep 17 00:00:00 2001 From: Noel De Martin Date: Thu, 7 Jul 2022 09:47:48 +0200 Subject: [PATCH 2/3] MOBILE-4110 behat: Add exclude features flag --- .github/workflows/update_behat_plugin.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/update_behat_plugin.yml b/.github/workflows/update_behat_plugin.yml index 4573920b6..5699c45bb 100644 --- a/.github/workflows/update_behat_plugin.yml +++ b/.github/workflows/update_behat_plugin.yml @@ -17,4 +17,5 @@ jobs: GIT_TOKEN: ${{ secrets.GIT_TOKEN }} BEHAT_PLUGIN_GITHUB_REPOSITORY: ${{ secrets.BEHAT_PLUGIN_GITHUB_REPOSITORY }} BEHAT_PLUGIN_BRANCH: ${{ secrets.BEHAT_PLUGIN_BRANCH }} + BEHAT_PLUGIN_EXCLUDE_FEATURES: ${{ secrets.BEHAT_PLUGIN_EXCLUDE_FEATURES }} run: ./.github/scripts/update_behat_plugin.sh From 4632eeb932242da4a30780bfc4804fefc1c85dbe Mon Sep 17 00:00:00 2001 From: Noel De Martin Date: Thu, 7 Jul 2022 10:39:36 +0200 Subject: [PATCH 3/3] MOBILE-4110 behat: Fix JS calls --- .../tests/behat/behat_app.php | 4 +- .../tests/behat/behat_app_helper.php | 47 +------------------ 2 files changed, 3 insertions(+), 48 deletions(-) diff --git a/local_moodleappbehat/tests/behat/behat_app.php b/local_moodleappbehat/tests/behat/behat_app.php index 4b7bbbf70..befe86f47 100644 --- a/local_moodleappbehat/tests/behat/behat_app.php +++ b/local_moodleappbehat/tests/behat/behat_app.php @@ -565,7 +565,7 @@ class behat_app extends behat_app_helper { */ public function i_pull_to_refresh_in_the_app() { $this->spin(function() { - $result = $this->js('await window.behat.pullToRefresh();'); + $result = $this->runtime_js('pullToRefresh()'); if ($result !== 'OK') { throw new DriverException('Error pulling to refresh - ' . $result); @@ -824,7 +824,7 @@ class behat_app extends behat_app_helper { $this->getSession()->switchToWindow($names[1]); } - $this->js('window.close()'); + $this->evaluate_script('window.close()'); $this->getSession()->switchToWindow($names[0]); } diff --git a/local_moodleappbehat/tests/behat/behat_app_helper.php b/local_moodleappbehat/tests/behat/behat_app_helper.php index 6b9fa3a9e..9f8236183 100644 --- a/local_moodleappbehat/tests/behat/behat_app_helper.php +++ b/local_moodleappbehat/tests/behat/behat_app_helper.php @@ -433,51 +433,6 @@ class behat_app_helper extends behat_base { } } - /** - * Evaluate and execute scripts checking for promises if needed. - * - * @param string $script - * @return mixed Resolved promise result. - */ - protected function js(string $script) { - $scriptnoreturn = preg_replace('/^return\s+/', '', $script); - $scriptnoreturn = preg_replace('/;$/', '', $scriptnoreturn); - - if (!preg_match('/^await\s+/', $scriptnoreturn)) { - // No async. - return $this->evaluate_script($script); - } - - $script = preg_replace('/^await\s+/', '', $scriptnoreturn); - - $start = microtime(true); - $promisevariable = 'PROMISE_RESULT_' . time(); - $timeout = self::get_extended_timeout(); - - $res = $this->evaluate_script("Promise.resolve($script) - .then(result => window.$promisevariable = result) - .catch(error => window.$promisevariable = 'Async code rejected: ' + error?.message)"); - - do { - if (microtime(true) - $start > $timeout) { - throw new DriverException("Async script not resolved after $timeout seconds"); - } - - // 0.1 seconds. - usleep(100000); - } while (!$this->evaluate_script("'$promisevariable' in window")); - - $result = $this->evaluate_script("window.$promisevariable"); - - $this->evaluate_script("delete window.$promisevariable"); - - if (is_string($result) && strrpos($result, 'Async code rejected:') === 0) { - throw new DriverException($result); - } - - return $result; - } - /** * Evaluate and execute methods from the Behat runtime. * @@ -485,7 +440,7 @@ class behat_app_helper extends behat_base { * @return mixed Result. */ protected function runtime_js(string $script) { - return $this->js("window.behat.$script"); + return $this->evaluate_script("window.behat.$script"); } /**