test(oidc): test OIDC login and refresh flow

- ensure Oxicloud s correctly functional with OIDC login
    - refresh token works
    - givenname, familyname, picture are imported in users' informations
    - test relogin (server is not using same path)
    - test email verified
    - test admin group provided from IdP
This commit is contained in:
Edouard Vanbelle
2026-06-28 22:40:06 +02:00
parent 324fcd486f
commit ada4b021bf
10 changed files with 2044 additions and 3 deletions
+23 -2
View File
@@ -298,7 +298,7 @@ jobs:
retention-days: 1
api-test:
name: API & Webdav tests
name: API, WebDAV & OIDC tests
needs: build
if: github.event_name == 'pull_request'
timeout-minutes: 30
@@ -331,16 +331,37 @@ jobs:
tar -xzf "xq_${XQ_VERSION}_linux_amd64.tar.gz" xq
sudo install -m 0755 xq /usr/local/bin/xq
# Node for the OIDC fake IdP (tests/oidc/fake_idp/server.js — a
# panva/node-oidc-provider wrapper). Pinned to match the version
# used elsewhere in this workflow (frontend Playwright job uses
# 26.3.0 too).
- uses: actions/setup-node@v4
with:
node-version: 26.3.0
cache: npm
cache-dependency-path: tests/oidc/fake_idp/package-lock.json
- name: Run Hurl API tests
run: bash tests/api/run.sh
env:
BUILD_TARGET: release
- name: Run Webdav tests
- name: Run WebDAV tests
run: bash tests/webdav/run.sh
env:
BUILD_TARGET: release
# OIDC integration: drives the SPA's SSO flow end-to-end against
# the fake IdP (auto-approve login + consent, real PKCE/JWT
# round-trip) and asserts the d1bbe8ba contract — OIDC callback
# MUST redirect to `/login?oidc_code=…`, not `/?oidc_code=…`.
# That bug shipped to users in production once already; the
# assertion at tests/oidc/oidc.hurl:Step 4 is its guard.
- name: Run OIDC tests
run: bash tests/oidc/run.sh
env:
BUILD_TARGET: release
- uses: actions/upload-artifact@v4
if: ${{ !cancelled() }}
with: