cypress
The module takes your cypress tests and run them in a container that point to your website.It's super useful to run e2e tests in a dagger CI.
Warning: The module is still a work in progress and may lack of features.
Installation
dagger install github.com/quartz-technology/daggerverse/cypress@v0.0.3Entrypoint
Return Type
Cypress !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | No description provided |
| website | Service | - | No description provided |
| port | Integer | - | No description provided |
Example
dagger -m github.com/quartz-technology/daggerverse/cypress@627fc4df7de8ce3bd8710fa08ea2db6cf16712b3 call \
--source DIR_PATHfunc (m *MyModule) Example(source *dagger.Directory) *dagger.Cypress {
return dag.
Cypress(source)
}@function
def example(source: dagger.Directory, ) -> dagger.Cypress:
return (
dag.cypress(source)
)@func()
example(source: Directory, ): Cypress {
return dag
.cypress(source)
}Types
Cypress 🔗
source() 🔗
The directory containing the cypress tests.
Return Type
Directory ! Example
dagger -m github.com/quartz-technology/daggerverse/cypress@627fc4df7de8ce3bd8710fa08ea2db6cf16712b3 call \
--source DIR_PATH sourcefunc (m *MyModule) Example(source *dagger.Directory) *dagger.Directory {
return dag.
Cypress(source).
Source()
}@function
def example(source: dagger.Directory, ) -> dagger.Directory:
return (
dag.cypress(source)
.source()
)@func()
example(source: Directory, ): Directory {
return dag
.cypress(source)
.source()
}website() 🔗
The website contained in a container pre configured to expose as a service the website.
Return Type
Service ! Example
dagger -m github.com/quartz-technology/daggerverse/cypress@627fc4df7de8ce3bd8710fa08ea2db6cf16712b3 call \
--source DIR_PATH websitefunc (m *MyModule) Example(source *dagger.Directory) *dagger.Service {
return dag.
Cypress(source).
Website()
}@function
def example(source: dagger.Directory, ) -> dagger.Service:
return (
dag.cypress(source)
.website()
)@func()
example(source: Directory, ): Service {
return dag
.cypress(source)
.website()
}port() 🔗
Port the website is exposed on.
Return Type
Integer ! Example
dagger -m github.com/quartz-technology/daggerverse/cypress@627fc4df7de8ce3bd8710fa08ea2db6cf16712b3 call \
--source DIR_PATH portfunc (m *MyModule) Example(ctx context.Context, source *dagger.Directory) int {
return dag.
Cypress(source).
Port(ctx)
}@function
async def example(source: dagger.Directory, ) -> int:
return await (
dag.cypress(source)
.port()
)@func()
async example(source: Directory, ): Promise<number> {
return dag
.cypress(source)
.port()
}run() 🔗
Run e2e tests on cypress.
Note: The end to end test should do test using BASE_URL environment
to point to the website service.
If no website is provided, create a new one (only work for node application).
TODO(TomChv): Take an interface Builder with a method Build to handle that for any language.
TODO(TomChv): Add param to run specific tests.
TODO(TomChv): Add param to not only run e2e tests.
Example usage: dagger call run
Return Type
String ! Example
dagger -m github.com/quartz-technology/daggerverse/cypress@627fc4df7de8ce3bd8710fa08ea2db6cf16712b3 call \
--source DIR_PATH runfunc (m *MyModule) Example(ctx context.Context, source *dagger.Directory) string {
return dag.
Cypress(source).
Run(ctx)
}@function
async def example(source: dagger.Directory, ) -> str:
return await (
dag.cypress(source)
.run()
)@func()
async example(source: Directory, ): Promise<string> {
return dag
.cypress(source)
.run()
}