Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
92d866e
fix: remove call from the call state when a user is left the group (#…
zskhan Nov 21, 2025
59de699
chore(deps-dev): bump rimraf from 6.1.0 to 6.1.2 in /server (#19791)
dependabot[bot] Nov 23, 2025
bd2f77a
refactor(WPB-21957): create fixture for creating teams + refactor edi…
markbrockhoff Nov 24, 2025
d70f2fa
test(WPB-19966): write "Reply" regression tests (#19760)
markbrockhoff Nov 24, 2025
6dcc1a6
fix: accessibility improvements login(https://wearezeta.atlassian.net…
arjita-mitra Nov 25, 2025
1d5c874
chore(deps): bump @wireapp/core from 46.46.3 to 46.46.5 (#19793)
dependabot[bot] Nov 25, 2025
a092a94
chore(deps): bump core-js from 3.46.0 to 3.47.0 (#19797)
dependabot[bot] Nov 25, 2025
220d86d
chore(deps): bump emoji-picker-react from 4.15.1 to 4.15.2 (#19802)
dependabot[bot] Nov 25, 2025
7011bd3
chore(deps-dev): bump html-webpack-plugin from 5.6.4 to 5.6.5 (#19800)
dependabot[bot] Nov 25, 2025
3cd71f6
chore(deps): bump oidc-client-ts from 3.4.0 to 3.4.1 (#19801)
dependabot[bot] Nov 25, 2025
d09efa4
chore(deps-dev): bump webpack from 5.102.1 to 5.103.0 (#19796)
dependabot[bot] Nov 25, 2025
34b18c7
chore(deps-dev): bump workbox-webpack-plugin from 7.3.0 to 7.4.0 (#19…
dependabot[bot] Nov 25, 2025
14ecacd
chore(deps-dev): bump stylelint from 16.25.0 to 16.26.0 (#19798)
dependabot[bot] Nov 25, 2025
f968d66
chore(deps-dev): bump baseline-browser-mapping from 2.8.28 to 2.8.31 …
dependabot[bot] Nov 25, 2025
4544833
test(WPB-19968): add tests for self deleting messages (#19805)
markbrockhoff Nov 25, 2025
75705f3
fix: prevent microphone disabled dialog display when muted (#19808)
zskhan Nov 25, 2025
9b6e8dc
test(WPB-21957): update backend endpoint to match api version (#19809)
markbrockhoff Nov 25, 2025
0315fc1
chore: bump avs to v10.2.19 (#19810)
zskhan Nov 26, 2025
add472a
chore(deps): bump pm2 from 6.0.13 to 6.0.14 in /server (#19814)
dependabot[bot] Nov 30, 2025
6271407
chore(deps): bump js-yaml from 3.14.1 to 3.14.2 in /server (#19817)
dependabot[bot] Nov 30, 2025
98b4875
test(WPB-19939): add authentication regression tests (#19826)
markbrockhoff Dec 1, 2025
7cb1c06
fix(websocket): optimise event handling. Add heartbeat [WPB-21950] (#…
aweiss-dev Dec 2, 2025
5a49960
chore(deps): bump express from 4.21.2 to 4.22.0 in /server (#19827)
dependabot[bot] Dec 2, 2025
3a66cd7
chore: blocking user spec [19940] (#19784)
JacquelineLehner Dec 2, 2025
85d9151
chore(deps): bump crowdin/github-action from 2.12.0 to 2.13.0 (#19828)
dependabot[bot] Dec 2, 2025
4f48216
feat: integrate Collabora using iframe [WPB-21650] (#19813)
e-maad Dec 3, 2025
5553f03
chore(deps-dev): bump stylelint from 16.26.0 to 16.26.1 (#19820)
dependabot[bot] Dec 3, 2025
b060636
chore(deps-dev): bump @playwright/test from 1.56.1 to 1.57.0 (#19818)
dependabot[bot] Dec 3, 2025
d08689e
chore(deps-dev): bump baseline-browser-mapping from 2.8.31 to 2.8.32 …
dependabot[bot] Dec 3, 2025
20b716e
chore(deps): bump emoji-picker-react from 4.15.2 to 4.16.1 (#19822)
dependabot[bot] Dec 3, 2025
4577eed
ci(WPB-21987): shard playwright tests across multiple runners (#19807)
markbrockhoff Dec 3, 2025
696691d
ci(WPB-21987): group test in playwright comment by file (#19830)
markbrockhoff Dec 3, 2025
3946d5a
chore(deps): bump 8398a7/action-slack
dependabot[bot] Dec 3, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/playwright-crit-flow-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@ jobs:
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: 18.16.x
cache: 'yarn'
node-version-file: .nvmrc
cache: yarn

- name: Install JS dependencies
run: yarn --immutable
Expand Down Expand Up @@ -49,7 +49,7 @@ jobs:
if: always()
id: generate_comment
run: |
node test/e2e_tests/scripts/create-playwright-report-summary.js
node --experimental-strip-types test/e2e_tests/scripts/create-playwright-report-summary.ts
COMMENT=$(cat playwright-report-summary.txt)
echo "comment<<EOF" >> $GITHUB_OUTPUT
echo "$COMMENT" >> $GITHUB_OUTPUT
Expand Down
121 changes: 109 additions & 12 deletions .github/workflows/precommit-crit-flows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,9 @@ jobs:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}

- uses: actions/setup-node@v4
- uses: actions/setup-node@v6
with:
node-version: 18.16.x
node-version-file: .nvmrc
cache: yarn

- run: yarn --immutable
Expand Down Expand Up @@ -124,25 +124,76 @@ jobs:
echo "❌ Deployment failed"; exit 1
fi

build_testservice:
name: Build Kalium Test Service
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
repository: wireapp/kalium
ref: main

- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'

- name: Gradle Cache
uses: gradle/actions/setup-gradle@4d9f0ba0025fe599b4ebab900eb7f3a1d93ef4c2 # SHA of tag v5.0.0

- name: Validate Gradle wrapper
uses: gradle/actions/wrapper-validation@4d9f0ba0025fe599b4ebab900eb7f3a1d93ef4c2 # SHA of tag v5.0.0

- name: Build the testservice
run: ./gradlew :testservice:shadowJar

- name: Upload jar
if: ${{ !cancelled() }}
uses: actions/upload-artifact@v4
with:
name: kalium-testservice
path: |
testservice/build/libs/
testservice/config.yml
retention-days: 1

e2e_crit_flow:
name: Playwright Critical Flow (precommit)
if: ${{ github.repository == 'wireapp/wire-webapp' && github.actor != 'dependabot[bot]' && github.actor != 'dependabot' }}
runs-on: [self-hosted, Linux, X64, office]
needs: [deploy_to_aws]
if: ${{ !cancelled() && github.repository == 'wireapp/wire-webapp' && github.actor != 'dependabot[bot]' && github.actor != 'dependabot' }}
runs-on: ubuntu-latest
needs: [deploy_to_aws, build_testservice]
timeout-minutes: 35
strategy:
fail-fast: false
matrix:
# prettier-ignore
shard: [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32]

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
ref: ${{ github.event.pull_request.head.sha }}

- uses: actions/setup-node@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
node-version: 18.16.x
java-version: '17'
distribution: 'temurin'

- uses: actions/setup-node@v6
with:
node-version-file: .nvmrc
cache: yarn

- name: Download Testservice Jar
uses: actions/download-artifact@v5
with:
name: kalium-testservice
path: testservice

- run: yarn --immutable
- run: yarn playwright install --with-deps && yarn playwright install chrome
- run: yarn playwright install --with-deps chrome
- uses: 1password/install-cli-action@143a85f84a90555d121cde2ff5872e393a47ab9f

- name: Generate env file
Expand All @@ -156,14 +207,60 @@ jobs:
echo "Using precommit URL: https://wire-webapp-precommit.zinfra.io/"
curl -s -o /dev/null -w "HTTP %{http_code}\n" https://wire-webapp-precommit.zinfra.io/

- name: Start Testservice in background
id: start-testservice
run: |
java -jar testservice/build/libs/testservice-*-all.jar server testservice/config.yml &
echo TESTSERVICE_PID=$! >> "$GITHUB_OUTPUT"

- name: Run critical flow tests
env:
# TODO: remove hardcoded precommit env in the future when ephemeral PR envs will exist
# Overrides URL from .env file
WEBAPP_URL: https://wire-webapp-precommit.zinfra.io/
run: yarn e2e-test --grep "@crit-flow-web"
TEST_SERVICE_URL: http://localhost:8080 # Run tests against locally running test service
run: yarn e2e-test --shard=${{ matrix.shard }}/${{ strategy.job-total }} --grep "@crit-flow-web|@regression"

- name: Upload blob report
if: ${{ !cancelled() }}
uses: actions/upload-artifact@v4
with:
name: blob-report-${{ matrix.shard }}
path: blob-report
retention-days: 1

- name: Stop Testservice
run: kill -SIGKILL $TESTSERVICE_PID
env:
TESTSERVICE_PID: ${{ steps.start-testservice.outputs.TESTSERVICE_PID }}

e2e-report:
runs-on: ubuntu-latest
if: ${{ !cancelled() }}
needs: [e2e_crit_flow]
steps:
- uses: actions/checkout@v6
with:
ref: ${{ github.event.pull_request.head.sha }}

- uses: actions/setup-node@v6
with:
node-version-file: .nvmrc
cache: yarn
- run: yarn --immutable

- name: Download blob reports
uses: actions/download-artifact@v5
with:
path: all-blob-reports
pattern: blob-report-*
merge-multiple: true

- name: Merge playwright reports
run: yarn playwright merge-reports --config ./playwright.config.ts ./all-blob-reports

- name: Upload test report
id: upload_playwright_report
if: always()
uses: actions/upload-artifact@v4
with:
Expand All @@ -174,7 +271,7 @@ jobs:
if: always()
id: generate_comment
run: |
node test/e2e_tests/scripts/create-playwright-report-summary.js
node --experimental-strip-types test/e2e_tests/scripts/create-playwright-report-summary.ts
COMMENT=$(cat playwright-report-summary.txt)
echo "comment<<EOF" >> $GITHUB_OUTPUT
echo "$COMMENT" >> $GITHUB_OUTPUT
Expand All @@ -186,7 +283,7 @@ jobs:
with:
header: playwright-summary
message: |
🔗 [Download Full Report Artifact](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }})
🔗 [Download Full Report Artifact](${{ steps.upload_playwright_report.outputs.artifact-url }})

${{ steps.generate_comment.outputs.comment }}
env:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/pull_translations.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
run: yarn --immutable

- name: Sync translations
uses: crowdin/github-action@v2.12.0
uses: crowdin/github-action@v2.13.0
env:
GITHUB_TOKEN: ${{secrets.OTTO_THE_BOT_GH_TOKEN}}
GITHUB_ACTOR: otto-the-bot
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/run-cells-crit-flow-e2e-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ jobs:
- name: Notify on Wire if succeeded
if: success()
continue-on-error: true
uses: 8398a7/action-slack@293f8dc0f9731ac35321056641cdef895f4f65f8
uses: 8398a7/action-slack@77eaa4f1c608a7d68b38af4e3f739dcd8cba273e
env:
ENV: ${{ inputs.environment }}
SLACK_WEBHOOK_URL: ${{ secrets.WIRE_CELLS_E2E_TEST_BOT_WEBHOOK_URL }}
Expand All @@ -71,7 +71,7 @@ jobs:
- name: Notify on Wire if failed
if: failure()
continue-on-error: true
uses: 8398a7/action-slack@293f8dc0f9731ac35321056641cdef895f4f65f8
uses: 8398a7/action-slack@77eaa4f1c608a7d68b38af4e3f739dcd8cba273e
env:
ENV: ${{ inputs.environment }}
SLACK_WEBHOOK_URL: ${{ secrets.WIRE_CELLS_E2E_TEST_BOT_WEBHOOK_URL }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/sync_translations.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ jobs:
run: yarn translate:merge

- name: Download translations
uses: crowdin/github-action@v2.12.0
uses: crowdin/github-action@v2.13.0
env:
GITHUB_TOKEN: ${{secrets.OTTO_THE_BOT_GH_TOKEN}}
CROWDIN_PROJECT_ID: 342359
Expand Down
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
22.16
22.18
7 changes: 7 additions & 0 deletions __mocks__/@wireapp/core.ts
Original file line number Diff line number Diff line change
Expand Up @@ -113,4 +113,11 @@ export const util = {
TaskScheduler,
};

export enum ConnectionState {
CLOSED = 'closed',
CONNECTING = 'connecting',
PROCESSING_NOTIFICATIONS = 'processing_notifications',
LIVE = 'live',
}

export {Ciphersuite} from '@wireapp/core-crypto';
25 changes: 13 additions & 12 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@
"@mediapipe/tasks-vision": "0.10.21",
"@tanstack/react-table": "8.21.3",
"@tanstack/react-virtual": "3.13.4",
"@wireapp/avs": "10.2.17",
"@wireapp/avs": "10.2.19",
"@wireapp/avs-debugger": "0.0.7",
"@wireapp/commons": "5.4.9",
"@wireapp/core": "46.46.3",
"@wireapp/core": "46.46.8",
"@wireapp/kalium-backup": "0.0.4",
"@wireapp/promise-queue": "2.4.9",
"@wireapp/react-ui-kit": "9.69.6",
Expand All @@ -27,11 +27,11 @@
"beautiful-react-hooks": "5.0.3",
"classnames": "2.5.1",
"copy-webpack-plugin": "13.0.1",
"core-js": "3.46.0",
"core-js": "3.47.0",
"date-fns": "4.1.0",
"dexie-batch": "0.4.3",
"dexie-encrypted": "2.0.0",
"emoji-picker-react": "4.15.1",
"emoji-picker-react": "4.16.1",
"http-status-codes": "2.3.0",
"immer": "10.2.0",
"jimp": "0.22.12",
Expand All @@ -45,7 +45,7 @@
"long": "5.3.2",
"markdown-it": "14.0.0",
"murmurhash": "2.0.1",
"oidc-client-ts": "3.4.0",
"oidc-client-ts": "3.4.1",
"path-to-regexp": "8.3.0",
"platform": "1.3.6",
"prism-themes": "^1.9.0",
Expand Down Expand Up @@ -83,7 +83,7 @@
"@emotion/eslint-plugin": "11.11.0",
"@faker-js/faker": "9.9.0",
"@formatjs/cli": "6.7.4",
"@playwright/test": "1.56.1",
"@playwright/test": "1.57.0",
"@roamhq/wrtc": "0.9.1",
"@testing-library/dom": "^10.4.1",
"@testing-library/jest-dom": "^6.9.1",
Expand Down Expand Up @@ -123,7 +123,7 @@
"autoprefixer": "10.4.22",
"babel-loader": "10.0.0",
"babel-plugin-transform-import-meta": "2.3.3",
"baseline-browser-mapping": "^2.8.28",
"baseline-browser-mapping": "^2.8.32",
"browserslist": "^4.28.0",
"cross-env": "7.0.3",
"css-loader": "7.1.2",
Expand All @@ -135,7 +135,7 @@
"eslint-plugin-prettier": "5.1.3",
"fake-indexeddb": "6.2.5",
"generate-changelog": "1.8.0",
"html-webpack-plugin": "5.6.4",
"html-webpack-plugin": "5.6.5",
"husky": "9.1.7",
"i18next-scanner": "4.6.0",
"intersection-observer": "0.12.2",
Expand Down Expand Up @@ -164,19 +164,19 @@
"simple-git": "3.30.0",
"sinon": "18.0.0",
"style-loader": "4.0.0",
"stylelint": "16.25.0",
"stylelint": "16.26.1",
"stylelint-config-idiomatic-order": "10.0.0",
"svg-inline-loader": "0.8.2",
"text-encoding": "0.7.0",
"ts-node": "10.9.2",
"tsc-watch": "6.2.1",
"typescript": "5.5.2",
"webpack": "5.102.1",
"webpack": "5.103.0",
"webpack-bundle-analyzer": "^4.10.2",
"webpack-cli": "6.0.1",
"webpack-dev-middleware": "7.4.5",
"webpack-hot-middleware": "2.26.1",
"workbox-webpack-plugin": "7.3.0"
"workbox-webpack-plugin": "7.4.0"
},
"engines": {
"yarn": ">= 4.1.1",
Expand Down Expand Up @@ -237,7 +237,8 @@
"xml2js": "0.5.0",
"@stablelib/utf8": "1.0.2",
"[email protected]": "patch:dexie-encrypted@npm%3A2.0.0#./.yarn/patches/dexie-encrypted-npm-2.0.0-eb61eb5975.patch",
"axios": "^1.9.0"
"axios": "^1.9.0",
"js-yaml": "^4.1.0"
},
"version": "0.27.0",
"packageManager": "[email protected]"
Expand Down
4 changes: 3 additions & 1 deletion playwright.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
*
*/

import {defineConfig, devices} from '@playwright/test';
import {defineConfig, devices, ReporterDescription} from '@playwright/test';
import {config} from 'dotenv';

config({path: './test/e2e_tests/.env'});
Expand All @@ -44,6 +44,8 @@ module.exports = defineConfig({
reporter: [
['html', {outputFolder: 'playwright-report', open: 'never'}],
['json', {outputFile: 'playwright-report/report.json'}],
// Add github and blob reporters in CI otherwise html and json are enough
...(process.env.CI ? ([['line'], ['blob']] satisfies ReporterDescription[]) : []),
],
/* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */
use: {
Expand Down
6 changes: 3 additions & 3 deletions server/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"@wireapp/commons": "5.4.9",
"dotenv": "16.5.0",
"dotenv-extended": "2.9.0",
"express": "4.21.2",
"express": "4.22.0",
"express-sitemap-xml": "3.1.0",
"express-useragent": "1.0.15",
"fs-extra": "11.3.1",
Expand All @@ -20,7 +20,7 @@
"maxmind": "4.3.10",
"nocache": "4.0.0",
"opn": "6.0.0",
"pm2": "6.0.13"
"pm2": "6.0.14"
},
"devDependencies": {
"@types/express": "4.17.21",
Expand All @@ -33,7 +33,7 @@
"@types/node": "22.5.5",
"browserslist": "^4.28.0",
"jest": "29.7.0",
"rimraf": "6.1.0",
"rimraf": "6.1.2",
"typescript": "5.6.3"
},
"resolutions": {
Expand Down
Loading
Loading