Skip to content

Commit

Permalink
feat: authentication capabilities (#369)
Browse files Browse the repository at this point in the history
authentication capabilities:

- BTP SAP Cloud IdP
- BTP Standard IdP
- Office 365
- Basic Auth
- custom auth fields

authentication works for single browser scenarios as well as multiremote.

credentials and authentication types are provided at design-time through configuration and don't require code changes.
docs still todo, short version is:
- standard: provide env vars `wdi5_username` and `wdi5_password` w/ respective values
- multiremote: provide env var s`wdi5_$remote-id_username` and `wdi5_$remote-id_password` w/ respective values
- add `wdi5:authentication` config object (see `src/types/wdi5.types.ts` → `*Authenticator`) to the `capabilities` section of the `wdio.conf.(t|j)s` file

addressing #207 

Co-authored-by: scoen <[email protected]>
Co-authored-by: dominik.feininger <[email protected]>
Co-authored-by: Constantin Lebrecht <[email protected]>
  • Loading branch information
4 people authored Nov 14, 2022
1 parent 3578dd0 commit 9c23bda
Show file tree
Hide file tree
Showing 32 changed files with 5,917 additions and 46,647 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/npm-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ jobs:
# and generating changelog
# and tagging the release properly
# and auto-incrementing the release number
- run: npm run release
- run: npm run release -- --prerelease pre --release-as major
# push to self aka main from within gh action with "release-state"
# doesn't trigger this workflow again
# b/c of missing personal access token here
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/publish-btp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ on:
- main
paths:
- "examples/ui5-ts-app/**"
- "!examples/ui5-js-app/**"

jobs:
publish-sample-ts-app-to-btp:
Expand Down
75 changes: 75 additions & 0 deletions .github/workflows/wdi5-tests_auth.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
name: auth
on:
pull_request:
branches:
- main
paths:
# relevant
- "client-side-js/**"
- "examples/**"
- "scripts/**"
- "src/**"
# don't run on changes to these
- "!.husky/**"
- "!.vscode/**"
- "!docs/**"
- "!.*"
- "!*.md"
- "!*.cjs"

env:
wdi5_username: ${{secrets.BTP_LOGIN}}
wdi5_one_username: ${{secrets.BTP_LOGIN}}
wdi5_two_username: ${{secrets.BTP_LOGIN}}
wdi5_password: ${{secrets.BTP_PASSWORD}}
wdi5_one_password: ${{secrets.BTP_PASSWORD}}
wdi5_two_password: ${{secrets.BTP_PASSWORD}}

jobs:
tests:
runs-on: ubuntu-latest

strategy:
matrix:
node-version: [14, 16, 18, 19]

steps:
- name: update chrome
run: |
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
sudo apt-get update
sudo apt-get --only-upgrade install google-chrome-stable
# check chrome version
google-chrome --version
- name: check out repo
uses: actions/checkout@v3

- name: use node ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
cache: "npm"
cache-dependency-path: "**/package-lock.json"

# we need this for workspace mgmt
- name: check npm version >= 7
run: npm --version
- name: update npm
run: |
npm i -g npm@8
npm --version
# install both module + sample app(s) deps
- name: install packages (wdi5 + sample app(s))
run: |
npm pkg delete scripts.prepare
npm ci
# build things
- name: build
run: npm run build

- name: btp/sap cloud id, basic auth, office 365, custom auth
run: npm run test:auth
25 changes: 16 additions & 9 deletions .github/workflows/wdi5-tests_core.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,15 @@
name: wdi5 core tests

name: core
on:
pull_request:
branches:
- main
paths:
# relevant
- "client-side-js/**"
- "examples/**"
- "scripts/**"
- "src/**"
# don't run on changes to these
- "!client-side-js/**"
- "!examples/**"
- "!scripts/**"
- "!.husky/**"
- "!.vscode/**"
- "!docs/**"
Expand All @@ -19,14 +18,23 @@ on:
- "!*.cjs"

jobs:
test-wdi5-core:
tests:
runs-on: ubuntu-latest

strategy:
matrix:
node-version: [14, 16, 18, 19]

steps:
- name: update chrome
run: |
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
sudo apt-get update
sudo apt-get --only-upgrade install google-chrome-stable
# check chrome version
google-chrome --version
- name: check out repo
uses: actions/checkout@v3

Expand All @@ -42,19 +50,18 @@ jobs:
run: npm --version
- name: update npm
run: |
npm i -g npm@latest
npm i -g npm@8
npm --version
# install both module + sample app(s) deps
- name: install packages (wdi5 + sample app(s))
run: |
npm set-script prepare ""
npm pkg delete scripts.prepare
npm ci
# build things
- name: build
run: npm run build

# run wdi5 core tests
- name: test wdi5 core
run: npm test
9 changes: 4 additions & 5 deletions .github/workflows/wdi5-tests_fe-app.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
name: FE app - wdi5 tests

name: FE-app
on:
pull_request:
branches:
Expand All @@ -19,7 +18,7 @@ on:
- "!*.cjs"

jobs:
test-fe-app:
tests:
runs-on: ubuntu-latest

strategy:
Expand Down Expand Up @@ -51,13 +50,13 @@ jobs:
run: npm --version
- name: update npm
run: |
npm i -g npm@latest
npm i -g npm@8
npm --version
# install both module + sample app(s) deps
- name: install packages (wdi5 + sample app(s))
run: |
npm set-script prepare ""
npm pkg delete scripts.prepare
npm ci
# build things
Expand Down
10 changes: 4 additions & 6 deletions .github/workflows/wdi5-tests_js-app.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: JS app - wdi5 tests
name: JS-app

on:
pull_request:
Expand All @@ -19,7 +19,7 @@ on:
- "!*.cjs"

jobs:
test-js-app:
tests:
runs-on: ubuntu-latest

strategy:
Expand Down Expand Up @@ -51,21 +51,19 @@ jobs:
run: npm --version
- name: update npm
run: |
npm i -g npm@latest
npm i -g npm@8
npm --version
# install both module + sample app(s) deps
- name: install packages (wdi5 + sample app(s))
run: |
npm set-script prepare ""
npm pkg delete scripts.prepare
npm ci
# build things
- name: build
run: npm run build

# run wdi5 core tests > moved to separate action

# run wdi5 tests within app(s)
- name: test js-app
run: npm run test-h:js-app
9 changes: 5 additions & 4 deletions .github/workflows/wdi5-tests_ts-app.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: TS app - wdi5 tests
name: TS-app

on:
pull_request:
Expand All @@ -19,7 +19,7 @@ on:
- "!*.cjs"

jobs:
test-ts-app:
tests:
runs-on: ubuntu-latest

strategy:
Expand Down Expand Up @@ -51,18 +51,19 @@ jobs:
run: npm --version
- name: update npm
run: |
npm i -g npm@latest
npm i -g npm@8
npm --version
# install both module + sample app(s) deps
- name: install packages (wdi5 + sample app(s))
run: |
npm set-script prepare ""
npm pkg delete scripts.prepare
npm ci
# build things
- name: build
run: npm run build

# run wdi5 tests within app(s)
- name: test ts-app
run: npm run test-h:ts-app
10 changes: 5 additions & 5 deletions docker/package-standalone.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,19 @@
},
"devDependencies": {
"@ui5/cli": "latest",
"@wdio/cli": "^7.19.6",
"@wdio/mocha-framework": "^7.19.5",
"@wdio/spec-reporter": "^7.19.5",
"@wdio/cli": "^7",
"@wdio/mocha-framework": "^7",
"@wdio/spec-reporter": "^7",
"chromedriver": "latest",
"@wdio/local-runner": "^7.19.5",
"@wdio/local-runner": "^7",
"fs-extra": "^10.1.0",
"mocha": "^9.2.2",
"npm-run-all": "^4.1.5",
"ui5-middleware-simpleproxy": "latest",
"wait-on": "^6.0.1",
"wdio-chromedriver-service": "^7",
"wdio-ui5-service": "latest",
"webdriverio": "^7.19.5"
"webdriverio": "^7"
},
"ui5": {
"dependencies": ["ui5-middleware-simpleproxy"]
Expand Down
Loading

0 comments on commit 9c23bda

Please sign in to comment.