ownCloud Infinite Scale
Kubernetes-based CI and a fully parallel Playwright suite for an open-source file-sync platform, with API tests across its Go backend.
- Role
- Software Developer
- Company
- JankariTech
- Period
- Apr 2024 – now
ownCloud Infinite Scale is an open-source file sync and collaboration platform with a Go backend and a TypeScript web client. At JankariTech I wrote and maintained its acceptance and end-to-end tests and the CI that runs them. 144 of my pull requests were merged across the two repositories.
Tests that run like production
I set up Kubernetes (K3s) test environments in Drone CI for more than ten API acceptance suites (Spaces, Graph users, SharingNG, Core API, WOPI, collaboration, previews), replacing Docker, so the tests run on infrastructure that matches how the product is deployed. I wrote the docs for running the suites on Kubernetes.
A fully parallel Playwright suite
The web E2E suite shared state by threading a world object through about 90 TypeScript files, so tests could not run in parallel. I replaced it with a module-level context store and gave each worker its own test data, and the suite now runs fully in parallel with no name collisions.
I also rewrote the Cucumber feature suites in native Playwright, standardised step definitions, fixed flaky tests and merged accessibility checks into one shared assertion.
Protocols and edge cases
I added acceptance tests for LDAP, OIDC transient failures, WOPI lock modes, TUS uploads, federation, notifications, replay and idempotency, and CLI commands. I fixed a production bug in Go where text-file previews failed on libvips builds without ImageMagick.
Before features shipped I tested them by hand too: password-protected folders alone produced about twelve bug reports.
Releases and documentation
I kept oCIS versions in step across master and the 5.0, 7.0, 7.1 and 11.0 stable branches, upgraded Go and Playwright, and removed SonarCloud from nightly runs to cut CI cost. I wrote the project's end-to-end testing guide.