mirror of
https://github.com/zitadel/zitadel.git
synced 2024-12-15 04:18:01 +00:00
fc99ec87c5
* cy10 changes
* test: setup local e2e env
* test(e2e): migrate e2e setup
* add more config
* make e2e setup work
* align variables
* fix config
* skip mfa
* set user register to false
* read ids from database if not provided
* don't read ids withing env file
* fix escaping in id queries
* fix project root
* export projectRoot path
* export projectRoot
* add e2e-setup.sh
* specify GOOS and GOARCH for dockerfile compatible binary
* add org default redirect uri
* correctly initialize org policy
* await ids
* fix awaiting ids
* fix cypress configuration
* fix some tests
* initial compose setup
* fix working directory
* fix references
* make tests less flaky
* run go tests
* compose works until e2e-setup incl
* pass created e2e sa key
* make cypress run
* derive e2e orgs domain from baseurl
* use host from baseurl for setup ctx
* move defaults.yaml back to cmd pkg
* just create org owner
* Don't render element if no roles are passed
* use map instead of switchMap
* fix e2e tests
* added testdata for e3e
* zipped dump
* removed dumpDir
* cypress workflow with compose
* quote name
* cleanup vars
* eliminate need for e2e setup
* compose has no builds anymore
* use compose run and zitadel nw
* test e2e on pr (#4114)
* test e2e on pr
* install goreleaser
* install npm dev dependencies
* run cypress wf
* dynamic release version
* skip flaky user tests
* skip flaky permissions test
* cache docker layers in pipeline
* Update .github/workflows/cypress.yml
Co-authored-by: Florian Forster <florian@caos.ch>
* align goreleaser version
* get rid of install.sh
* remove cypress-terminal-report
* Revert "remove cypress-terminal-report"
This reverts commit 254b5a1f87
.
* just one npm e2e:build command
* cache npm dependencies
* install node modules using docker
* dedicated e2e context
* fix syntax
* don't copy node modules from goreleaser
* add npm-copy target
* add tsconfig.json
* remove docker caching
* deleted unneeded shellscript
* naming and cleanup
Co-authored-by: Florian Forster <florian@caos.ch>
Co-authored-by: Christian Jakob <christian@caos.ch>
* cleanup
Co-authored-by: Elio Bischof <eliobischof@gmail.com>
Co-authored-by: Christian Jakob <christian@caos.ch>
Co-authored-by: Florian Forster <florian@caos.ch>
81 lines
2.6 KiB
TypeScript
81 lines
2.6 KiB
TypeScript
import { apiCallProperties } from "./apiauth"
|
|
import { ensureSomethingDoesntExist, ensureSomethingExists } from "./ensure"
|
|
|
|
export function ensureProjectExists(api: apiCallProperties, projectName: string): Cypress.Chainable<number> {
|
|
|
|
return ensureSomethingExists(
|
|
api,
|
|
`projects/_search`,
|
|
(project: any) => project.name === projectName,
|
|
'projects',
|
|
{ name: projectName },
|
|
)
|
|
}
|
|
|
|
export function ensureProjectDoesntExist(api: apiCallProperties, projectName: string): Cypress.Chainable<null> {
|
|
|
|
return ensureSomethingDoesntExist(
|
|
api,
|
|
`projects/_search`,
|
|
(project: any) => project.name === projectName,
|
|
(project) => `projects/${project.id}`,
|
|
)
|
|
}
|
|
|
|
class ResourceType {
|
|
constructor(
|
|
public resourcePath: string,
|
|
public compareProperty: string,
|
|
public identifierProperty: string,
|
|
){}
|
|
}
|
|
|
|
export const Apps = new ResourceType('apps', 'name', 'id')
|
|
export const Roles = new ResourceType('roles', 'key', 'key')
|
|
//export const Grants = new ResourceType('apps', 'name')
|
|
|
|
|
|
export function ensureProjectResourceDoesntExist(api: apiCallProperties, projectId: number, resourceType: ResourceType, resourceName: string): Cypress.Chainable<null> {
|
|
return ensureSomethingDoesntExist(
|
|
api,
|
|
`projects/${projectId}/${resourceType.resourcePath}/_search`,
|
|
(resource: any) => {
|
|
return resource[resourceType.compareProperty] === resourceName
|
|
},
|
|
(resource) => {
|
|
return `projects/${projectId}/${resourceType.resourcePath}/${resource[resourceType.identifierProperty]}`
|
|
}
|
|
)
|
|
}
|
|
|
|
export function ensureApplicationExists(api: apiCallProperties, projectId: number, appName: string): Cypress.Chainable<number> {
|
|
|
|
return ensureSomethingExists(
|
|
api,
|
|
`projects/${projectId}/${Apps.resourcePath}/_search`,
|
|
(resource: any) => resource.name === appName,
|
|
`projects/${projectId}/${Apps.resourcePath}/oidc`,
|
|
{
|
|
name: appName,
|
|
redirectUris: [
|
|
'https://e2eredirecturl.org'
|
|
],
|
|
responseTypes: [
|
|
"OIDC_RESPONSE_TYPE_CODE"
|
|
],
|
|
grantTypes: [
|
|
"OIDC_GRANT_TYPE_AUTHORIZATION_CODE"
|
|
],
|
|
authMethodType: "OIDC_AUTH_METHOD_TYPE_NONE",
|
|
postLogoutRedirectUris: [
|
|
'https://e2elogoutredirecturl.org'
|
|
],
|
|
/* "clientId": "129383004379407963@e2eprojectpermission",
|
|
"clockSkew": "0s",
|
|
"allowedOrigins": [
|
|
"https://testurl.org"
|
|
]*/
|
|
},
|
|
)
|
|
}
|