config.ts 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import { reconfigure } from './hostAdminClient'
  2. import { resetCreatedUsersCache } from './login'
  3. export const STARTUP_TIMEOUT =
  4. parseInt(Cypress.env('STARTUP_TIMEOUT'), 10) || 120_000
  5. export function isExcludedBySharding(
  6. shard:
  7. | 'CE_DEFAULT'
  8. | 'CE_CUSTOM_1'
  9. | 'CE_CUSTOM_2'
  10. | 'PRO_DEFAULT_1'
  11. | 'PRO_DEFAULT_2'
  12. | 'PRO_CUSTOM_1'
  13. | 'PRO_CUSTOM_2'
  14. | 'PRO_CUSTOM_3'
  15. ) {
  16. const SHARD = Cypress.env('SHARD')
  17. return SHARD && shard !== SHARD
  18. }
  19. let lastConfig: string
  20. export function startWith({
  21. pro = false,
  22. version = 'latest',
  23. vars = {},
  24. varsFn = () => ({}),
  25. withDataDir = false,
  26. resetData = false,
  27. }) {
  28. before(async function () {
  29. Object.assign(vars, varsFn())
  30. const cfg = JSON.stringify({
  31. pro,
  32. version,
  33. vars,
  34. withDataDir,
  35. })
  36. if (resetData) {
  37. resetCreatedUsersCache()
  38. // no return here, always reconfigure when resetting data
  39. } else if (lastConfig === cfg) {
  40. return
  41. }
  42. this.timeout(STARTUP_TIMEOUT)
  43. await reconfigure({ pro, version, vars, withDataDir, resetData })
  44. lastConfig = cfg
  45. })
  46. }
  47. export { reconfigure }