Problem
The maintenance of test fixtures currently is a time consuming manual process which increases exponentially with the features and supported server versions added.
Goal
The creation of fixtures needs to be automated.
Idea
A dedicated executable target to be run on macOS exclusively. It will automatically deploy a Nextcloud docker container and provision it with data. Then it will be queried for responses which are downloaded as raw files into a local directory. This is repeated for every supported server version. On completion, the Docker container is deleted again. The developer must move the downloaded responses manually to the test target resources directory.
Remarks
The project still needs to rely on static fixtures in form of files in the test bundle. A real Nextcloud server cannot be used as a testing backend because it would complicate and slow down test environments a lot. It would also need to run on a different host because otherwise the tests cannot run on any other platform than macOS due to the Docker requirement.
Problem
The maintenance of test fixtures currently is a time consuming manual process which increases exponentially with the features and supported server versions added.
Goal
The creation of fixtures needs to be automated.
Idea
A dedicated executable target to be run on macOS exclusively. It will automatically deploy a Nextcloud docker container and provision it with data. Then it will be queried for responses which are downloaded as raw files into a local directory. This is repeated for every supported server version. On completion, the Docker container is deleted again. The developer must move the downloaded responses manually to the test target resources directory.
Remarks
The project still needs to rely on static fixtures in form of files in the test bundle. A real Nextcloud server cannot be used as a testing backend because it would complicate and slow down test environments a lot. It would also need to run on a different host because otherwise the tests cannot run on any other platform than macOS due to the Docker requirement.