unleash-server 4.1.4 → 4.2.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -2
- package/dist/lib/addons/datadog-definition.js +7 -0
- package/dist/lib/addons/datadog-definition.js.map +1 -1
- package/dist/lib/addons/datadog.d.ts +5 -0
- package/dist/lib/addons/datadog.js +53 -0
- package/dist/lib/addons/datadog.js.map +1 -1
- package/dist/lib/addons/datadog.test.js +26 -1
- package/dist/lib/addons/datadog.test.js.map +1 -1
- package/dist/lib/addons/slack-definition.js +7 -0
- package/dist/lib/addons/slack-definition.js.map +1 -1
- package/dist/lib/addons/slack.d.ts +5 -0
- package/dist/lib/addons/slack.js +62 -9
- package/dist/lib/addons/slack.js.map +1 -1
- package/dist/lib/addons/slack.test.js +25 -0
- package/dist/lib/addons/slack.test.js.map +1 -1
- package/dist/lib/addons/teams-definition.js +7 -0
- package/dist/lib/addons/teams-definition.js.map +1 -1
- package/dist/lib/addons/teams.d.ts +5 -0
- package/dist/lib/addons/teams.js +54 -1
- package/dist/lib/addons/teams.js.map +1 -1
- package/dist/lib/addons/teams.test.js +25 -0
- package/dist/lib/addons/teams.test.js.map +1 -1
- package/dist/lib/addons/webhook-definition.js +8 -0
- package/dist/lib/addons/webhook-definition.js.map +1 -1
- package/dist/lib/app.test.js +11 -7
- package/dist/lib/app.test.js.map +1 -1
- package/dist/lib/create-config.js +4 -1
- package/dist/lib/create-config.js.map +1 -1
- package/dist/lib/db/api-token-store.d.ts +2 -1
- package/dist/lib/db/api-token-store.js +5 -0
- package/dist/lib/db/api-token-store.js.map +1 -1
- package/dist/lib/db/client-instance-store.js +5 -2
- package/dist/lib/db/client-instance-store.js.map +1 -1
- package/dist/lib/db/client-metrics-store-v2.d.ts +19 -0
- package/dist/lib/db/client-metrics-store-v2.js +126 -0
- package/dist/lib/db/client-metrics-store-v2.js.map +1 -0
- package/dist/lib/db/client-metrics-store.d.ts +6 -0
- package/dist/lib/db/client-metrics-store.js +6 -1
- package/dist/lib/db/client-metrics-store.js.map +1 -1
- package/dist/lib/db/environment-store.d.ts +7 -7
- package/dist/lib/db/environment-store.js +59 -54
- package/dist/lib/db/environment-store.js.map +1 -1
- package/dist/lib/db/event-store.d.ts +5 -2
- package/dist/lib/db/event-store.js +27 -4
- package/dist/lib/db/event-store.js.map +1 -1
- package/dist/lib/db/feature-environment-store.d.ts +9 -6
- package/dist/lib/db/feature-environment-store.js +66 -20
- package/dist/lib/db/feature-environment-store.js.map +1 -1
- package/dist/lib/db/feature-strategy-store.d.ts +7 -11
- package/dist/lib/db/feature-strategy-store.js +84 -147
- package/dist/lib/db/feature-strategy-store.js.map +1 -1
- package/dist/lib/db/feature-toggle-client-store.d.ts +26 -0
- package/dist/lib/db/feature-toggle-client-store.js +104 -0
- package/dist/lib/db/feature-toggle-client-store.js.map +1 -0
- package/dist/lib/db/feature-toggle-store.d.ts +10 -22
- package/dist/lib/db/feature-toggle-store.js +9 -42
- package/dist/lib/db/feature-toggle-store.js.map +1 -1
- package/dist/lib/db/index.js +4 -0
- package/dist/lib/db/index.js.map +1 -1
- package/dist/lib/db/project-store.d.ts +4 -6
- package/dist/lib/db/project-store.js +7 -43
- package/dist/lib/db/project-store.js.map +1 -1
- package/dist/lib/event-hook.test.js +8 -7
- package/dist/lib/event-hook.test.js.map +1 -1
- package/dist/lib/logger.test.js +26 -4
- package/dist/lib/logger.test.js.map +1 -1
- package/dist/lib/middleware/api-token-middleware.js +10 -2
- package/dist/lib/middleware/api-token-middleware.js.map +1 -1
- package/dist/lib/middleware/api-token-middleware.test.js +37 -1
- package/dist/lib/middleware/api-token-middleware.test.js.map +1 -1
- package/dist/lib/middleware/demo-authentication.js +1 -1
- package/dist/lib/middleware/demo-authentication.js.map +1 -1
- package/dist/lib/middleware/oss-authentication.js +0 -3
- package/dist/lib/middleware/oss-authentication.js.map +1 -1
- package/dist/lib/middleware/rbac-middleware.js +2 -2
- package/dist/lib/middleware/rbac-middleware.js.map +1 -1
- package/dist/lib/middleware/rbac-middleware.test.js +39 -0
- package/dist/lib/middleware/rbac-middleware.test.js.map +1 -1
- package/dist/lib/routes/admin-api/addon.d.ts +4 -3
- package/dist/lib/routes/admin-api/addon.js +4 -4
- package/dist/lib/routes/admin-api/addon.js.map +1 -1
- package/dist/lib/routes/admin-api/api-token-controller.js +10 -38
- package/dist/lib/routes/admin-api/api-token-controller.js.map +1 -1
- package/dist/lib/routes/admin-api/archive.d.ts +4 -3
- package/dist/lib/routes/admin-api/archive.js +3 -3
- package/dist/lib/routes/admin-api/archive.js.map +1 -1
- package/dist/lib/routes/admin-api/client-metrics.d.ts +12 -0
- package/dist/lib/routes/admin-api/client-metrics.js +35 -0
- package/dist/lib/routes/admin-api/client-metrics.js.map +1 -0
- package/dist/lib/routes/admin-api/context.d.ts +4 -3
- package/dist/lib/routes/admin-api/context.js +4 -4
- package/dist/lib/routes/admin-api/context.js.map +1 -1
- package/dist/lib/routes/admin-api/environments-controller.d.ts +4 -4
- package/dist/lib/routes/admin-api/environments-controller.js +17 -43
- package/dist/lib/routes/admin-api/environments-controller.js.map +1 -1
- package/dist/lib/routes/admin-api/event.js +7 -1
- package/dist/lib/routes/admin-api/event.js.map +1 -1
- package/dist/lib/routes/admin-api/feature.d.ts +11 -10
- package/dist/lib/routes/admin-api/feature.js +26 -24
- package/dist/lib/routes/admin-api/feature.js.map +1 -1
- package/dist/lib/routes/admin-api/index.js +2 -0
- package/dist/lib/routes/admin-api/index.js.map +1 -1
- package/dist/lib/routes/admin-api/metrics.js +25 -66
- package/dist/lib/routes/admin-api/metrics.js.map +1 -1
- package/dist/lib/routes/admin-api/project/environments.js +6 -15
- package/dist/lib/routes/admin-api/project/environments.js.map +1 -1
- package/dist/lib/routes/admin-api/project/features.d.ts +33 -11
- package/dist/lib/routes/admin-api/project/features.js +103 -35
- package/dist/lib/routes/admin-api/project/features.js.map +1 -1
- package/dist/lib/routes/admin-api/project/health-report.js +7 -18
- package/dist/lib/routes/admin-api/project/health-report.js.map +1 -1
- package/dist/lib/routes/admin-api/project/index.d.ts +3 -0
- package/dist/lib/routes/admin-api/project/index.js +8 -0
- package/dist/lib/routes/admin-api/project/index.js.map +1 -1
- package/dist/lib/routes/admin-api/state.d.ts +2 -1
- package/dist/lib/routes/admin-api/state.js +5 -4
- package/dist/lib/routes/admin-api/state.js.map +1 -1
- package/dist/lib/routes/admin-api/strategy.d.ts +1 -1
- package/dist/lib/routes/admin-api/strategy.js +24 -22
- package/dist/lib/routes/admin-api/strategy.js.map +1 -1
- package/dist/lib/routes/admin-api/tag-type.d.ts +4 -3
- package/dist/lib/routes/admin-api/tag-type.js +19 -50
- package/dist/lib/routes/admin-api/tag-type.js.map +1 -1
- package/dist/lib/routes/admin-api/tag.d.ts +3 -2
- package/dist/lib/routes/admin-api/tag.js +3 -4
- package/dist/lib/routes/admin-api/tag.js.map +1 -1
- package/dist/lib/routes/admin-api/user-admin.js +11 -37
- package/dist/lib/routes/admin-api/user-admin.js.map +1 -1
- package/dist/lib/routes/api-def.d.ts +49 -52
- package/dist/lib/routes/api-def.js +13 -9
- package/dist/lib/routes/api-def.js.map +1 -1
- package/dist/lib/routes/client-api/feature.d.ts +7 -8
- package/dist/lib/routes/client-api/feature.js +39 -27
- package/dist/lib/routes/client-api/feature.js.map +1 -1
- package/dist/lib/routes/client-api/feature.test.js +10 -10
- package/dist/lib/routes/client-api/feature.test.js.map +1 -1
- package/dist/lib/routes/client-api/metrics.d.ts +8 -3
- package/dist/lib/routes/client-api/metrics.js +28 -16
- package/dist/lib/routes/client-api/metrics.js.map +1 -1
- package/dist/lib/routes/client-api/metrics.test.js +27 -9
- package/dist/lib/routes/client-api/metrics.test.js.map +1 -1
- package/dist/lib/routes/client-api/register.d.ts +4 -2
- package/dist/lib/routes/client-api/register.js +16 -14
- package/dist/lib/routes/client-api/register.js.map +1 -1
- package/dist/lib/routes/controller.d.ts +1 -0
- package/dist/lib/routes/controller.js +3 -0
- package/dist/lib/routes/controller.js.map +1 -1
- package/dist/lib/routes/index.js +5 -5
- package/dist/lib/routes/index.js.map +1 -1
- package/dist/lib/routes/unleash-types.d.ts +1 -2
- package/dist/lib/routes/util.js +1 -0
- package/dist/lib/routes/util.js.map +1 -1
- package/dist/lib/schema/api-token-schema.d.ts +2 -0
- package/dist/lib/schema/api-token-schema.js +28 -0
- package/dist/lib/schema/api-token-schema.js.map +1 -0
- package/dist/lib/schema/feature-schema.test.js +17 -16
- package/dist/lib/schema/feature-schema.test.js.map +1 -1
- package/dist/lib/schema/project-schema.d.ts +2 -0
- package/dist/lib/schema/project-schema.js +12 -0
- package/dist/lib/schema/project-schema.js.map +1 -0
- package/dist/lib/server-impl.d.ts +2 -2
- package/dist/lib/server-impl.js +9 -6
- package/dist/lib/server-impl.js.map +1 -1
- package/dist/lib/server-impl.test.js +28 -21
- package/dist/lib/server-impl.test.js.map +1 -1
- package/dist/lib/services/access-service.d.ts +1 -1
- package/dist/lib/services/access-service.js.map +1 -1
- package/dist/lib/services/api-token-service.d.ts +3 -8
- package/dist/lib/services/api-token-service.js +43 -8
- package/dist/lib/services/api-token-service.js.map +1 -1
- package/dist/lib/services/client-metrics/client-metrics-schema.js +1 -0
- package/dist/lib/services/client-metrics/client-metrics-schema.js.map +1 -1
- package/dist/lib/services/client-metrics/client-metrics-service-v2.d.ts +16 -0
- package/dist/lib/services/client-metrics/client-metrics-service-v2.js +68 -0
- package/dist/lib/services/client-metrics/client-metrics-service-v2.js.map +1 -0
- package/dist/lib/services/client-metrics/index.d.ts +0 -1
- package/dist/lib/services/client-metrics/index.js +5 -3
- package/dist/lib/services/client-metrics/index.js.map +1 -1
- package/dist/lib/services/client-metrics/register-schema.js +1 -0
- package/dist/lib/services/client-metrics/register-schema.js.map +1 -1
- package/dist/lib/services/context-schema.d.ts +3 -3
- package/dist/lib/services/context-schema.js +15 -11
- package/dist/lib/services/context-schema.js.map +1 -1
- package/dist/lib/services/environment-service.d.ts +4 -5
- package/dist/lib/services/environment-service.js +14 -14
- package/dist/lib/services/environment-service.js.map +1 -1
- package/dist/lib/services/event-service.d.ts +1 -0
- package/dist/lib/services/event-service.js +4 -3
- package/dist/lib/services/event-service.js.map +1 -1
- package/dist/lib/services/feature-toggle-service-v2.d.ts +33 -12
- package/dist/lib/services/feature-toggle-service-v2.js +200 -55
- package/dist/lib/services/feature-toggle-service-v2.js.map +1 -1
- package/dist/lib/services/index.js +4 -1
- package/dist/lib/services/index.js.map +1 -1
- package/dist/lib/services/project-health-service.d.ts +3 -1
- package/dist/lib/services/project-health-service.js +7 -3
- package/dist/lib/services/project-health-service.js.map +1 -1
- package/dist/lib/services/project-schema.d.ts +2 -3
- package/dist/lib/services/project-schema.js +12 -7
- package/dist/lib/services/project-schema.js.map +1 -1
- package/dist/lib/services/project-service.d.ts +4 -2
- package/dist/lib/services/project-service.js +21 -11
- package/dist/lib/services/project-service.js.map +1 -1
- package/dist/lib/services/state-schema.d.ts +2 -0
- package/dist/lib/services/state-schema.js +16 -6
- package/dist/lib/services/state-schema.js.map +1 -1
- package/dist/lib/services/state-service.d.ts +7 -0
- package/dist/lib/services/state-service.js +69 -11
- package/dist/lib/services/state-service.js.map +1 -1
- package/dist/lib/services/state-service.test.js +72 -27
- package/dist/lib/services/state-service.test.js.map +1 -1
- package/dist/lib/services/state-util.js +1 -1
- package/dist/lib/services/state-util.js.map +1 -1
- package/dist/lib/types/api-user.d.ts +11 -4
- package/dist/lib/types/api-user.js +4 -1
- package/dist/lib/types/api-user.js.map +1 -1
- package/dist/lib/types/events.d.ts +7 -0
- package/dist/lib/types/events.js +9 -1
- package/dist/lib/types/events.js.map +1 -1
- package/dist/lib/types/model.d.ts +27 -8
- package/dist/lib/types/model.js.map +1 -1
- package/dist/lib/types/models/api-token.d.ts +19 -0
- package/dist/lib/types/models/api-token.js +10 -0
- package/dist/lib/types/models/api-token.js.map +1 -0
- package/dist/lib/types/models/metrics.d.ts +11 -0
- package/dist/lib/types/models/metrics.js +3 -0
- package/dist/lib/types/models/metrics.js.map +1 -0
- package/dist/lib/types/permissions.d.ts +2 -0
- package/dist/lib/types/permissions.js +3 -1
- package/dist/lib/types/permissions.js.map +1 -1
- package/dist/lib/types/services.d.ts +2 -0
- package/dist/lib/types/stores/api-token-store.d.ts +1 -14
- package/dist/lib/types/stores/api-token-store.js +0 -6
- package/dist/lib/types/stores/api-token-store.js.map +1 -1
- package/dist/lib/types/stores/client-instance-store.d.ts +1 -0
- package/dist/lib/types/stores/client-metrics-store-v2.d.ts +17 -0
- package/dist/lib/types/stores/client-metrics-store-v2.js +3 -0
- package/dist/lib/types/stores/client-metrics-store-v2.js.map +1 -0
- package/dist/lib/types/stores/environment-store.d.ts +6 -6
- package/dist/lib/types/stores/event-store.d.ts +1 -0
- package/dist/lib/types/stores/feature-environment-store.d.ts +9 -6
- package/dist/lib/types/stores/feature-strategies-store.d.ts +6 -12
- package/dist/lib/types/stores/feature-toggle-client-store.d.ts +5 -0
- package/dist/lib/types/stores/feature-toggle-client-store.js +3 -0
- package/dist/lib/types/stores/feature-toggle-client-store.js.map +1 -0
- package/dist/lib/types/stores/feature-toggle-store.d.ts +7 -14
- package/dist/lib/types/stores/project-store.d.ts +5 -2
- package/dist/lib/types/stores.d.ts +4 -0
- package/dist/lib/util/constants.d.ts +1 -0
- package/dist/lib/util/constants.js +2 -1
- package/dist/lib/util/constants.js.map +1 -1
- package/dist/lib/util/extract-user.d.ts +2 -0
- package/dist/lib/util/extract-user.js +8 -0
- package/dist/lib/util/extract-user.js.map +1 -0
- package/dist/lib/util/graceful-shutdown.js +1 -1
- package/dist/lib/util/graceful-shutdown.js.map +1 -1
- package/dist/lib/util/snakeCase.d.ts +6 -0
- package/dist/lib/util/snakeCase.js +28 -0
- package/dist/lib/util/snakeCase.js.map +1 -0
- package/dist/{test/e2e/api/admin/boostrap.test.d.ts → lib/util/snakeCase.test.d.ts} +0 -0
- package/dist/lib/util/snakeCase.test.js +23 -0
- package/dist/lib/util/snakeCase.test.js.map +1 -0
- package/dist/migrations/20210831072631-add-sort-order-and-type-to-env.d.ts +5 -0
- package/dist/migrations/20210831072631-add-sort-order-and-type-to-env.js +14 -0
- package/dist/migrations/20210831072631-add-sort-order-and-type-to-env.js.map +1 -0
- package/dist/migrations/20210907124058-add-dbcritic-indices.d.ts +5 -0
- package/dist/migrations/20210907124058-add-dbcritic-indices.js +30 -0
- package/dist/migrations/20210907124058-add-dbcritic-indices.js.map +1 -0
- package/dist/migrations/20210907124850-add-dbcritic-primary-keys.d.ts +5 -0
- package/dist/migrations/20210907124850-add-dbcritic-primary-keys.js +18 -0
- package/dist/migrations/20210907124850-add-dbcritic-primary-keys.js.map +1 -0
- package/dist/migrations/20210908100701-add-enabled-to-environments.d.ts +5 -0
- package/dist/migrations/20210908100701-add-enabled-to-environments.js +14 -0
- package/dist/migrations/20210908100701-add-enabled-to-environments.js.map +1 -0
- package/dist/migrations/20210909085651-add-protected-field-to-environments.d.ts +5 -0
- package/dist/migrations/20210909085651-add-protected-field-to-environments.js +15 -0
- package/dist/migrations/20210909085651-add-protected-field-to-environments.js.map +1 -0
- package/dist/migrations/20210913103159-api-keys-scoping.d.ts +2 -0
- package/dist/migrations/20210913103159-api-keys-scoping.js +13 -0
- package/dist/migrations/20210913103159-api-keys-scoping.js.map +1 -0
- package/dist/migrations/20210915122001-add-project-and-environment-columns-to-events.d.ts +2 -0
- package/dist/migrations/20210915122001-add-project-and-environment-columns-to-events.js +22 -0
- package/dist/migrations/20210915122001-add-project-and-environment-columns-to-events.js.map +1 -0
- package/dist/migrations/20210920104218-rename-global-env-to-default-env.d.ts +2 -0
- package/dist/migrations/20210920104218-rename-global-env-to-default-env.js +25 -0
- package/dist/migrations/20210920104218-rename-global-env-to-default-env.js.map +1 -0
- package/dist/migrations/20210921105032-client-api-tokens-default.d.ts +2 -0
- package/dist/migrations/20210921105032-client-api-tokens-default.js +13 -0
- package/dist/migrations/20210921105032-client-api-tokens-default.js.map +1 -0
- package/dist/migrations/20210922084509-add-non-null-constraint-to-environment-type.d.ts +2 -0
- package/dist/migrations/20210922084509-add-non-null-constraint-to-environment-type.js +10 -0
- package/dist/migrations/20210922084509-add-non-null-constraint-to-environment-type.js.map +1 -0
- package/dist/migrations/20210922120521-add-tag-type-permission.d.ts +2 -0
- package/dist/migrations/20210922120521-add-tag-type-permission.js +19 -0
- package/dist/migrations/20210922120521-add-tag-type-permission.js.map +1 -0
- package/dist/migrations/20210928065411-remove-displayname-from-environments.d.ts +2 -0
- package/dist/migrations/20210928065411-remove-displayname-from-environments.js +10 -0
- package/dist/migrations/20210928065411-remove-displayname-from-environments.js.map +1 -0
- package/dist/migrations/20210928080601-add-development-and-production-environments.d.ts +2 -0
- package/dist/migrations/20210928080601-add-development-and-production-environments.js +16 -0
- package/dist/migrations/20210928080601-add-development-and-production-environments.js.map +1 -0
- package/dist/migrations/20210928082228-connect-default-environment-to-all-existing-projects.d.ts +2 -0
- package/dist/migrations/20210928082228-connect-default-environment-to-all-existing-projects.js +16 -0
- package/dist/migrations/20210928082228-connect-default-environment-to-all-existing-projects.js.map +1 -0
- package/dist/migrations/20211004104917-client-metrics-env.d.ts +2 -0
- package/dist/migrations/20211004104917-client-metrics-env.js +22 -0
- package/dist/migrations/20211004104917-client-metrics-env.js.map +1 -0
- package/dist/migrations/20211011094226-add-environment-to-client-instances.d.ts +5 -0
- package/dist/migrations/20211011094226-add-environment-to-client-instances.js +21 -0
- package/dist/migrations/20211011094226-add-environment-to-client-instances.js.map +1 -0
- package/dist/migrator.d.ts +3 -4
- package/dist/migrator.js +19 -5
- package/dist/migrator.js.map +1 -1
- package/dist/server-dev.js +5 -0
- package/dist/server-dev.js.map +1 -1
- package/dist/test/e2e/api/admin/api-token.auth.e2e.test.js +4 -4
- package/dist/test/e2e/api/admin/api-token.auth.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/api-token.e2e.test.js +159 -10
- package/dist/test/e2e/api/admin/api-token.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/archive.test.js.map +1 -1
- package/dist/test/e2e/api/admin/{project/feature.strategy.e2e.test.d.ts → bootstrap.test.d.ts} +0 -0
- package/dist/test/e2e/api/admin/{boostrap.test.js → bootstrap.test.js} +2 -2
- package/dist/test/e2e/api/admin/bootstrap.test.js.map +1 -0
- package/dist/test/e2e/api/admin/client-metrics.e2e.test.d.ts +1 -0
- package/dist/test/e2e/api/admin/client-metrics.e2e.test.js +219 -0
- package/dist/test/e2e/api/admin/client-metrics.e2e.test.js.map +1 -0
- package/dist/test/e2e/api/admin/environment.test.js +80 -53
- package/dist/test/e2e/api/admin/environment.test.js.map +1 -1
- package/dist/test/e2e/api/admin/event.e2e.test.js +28 -0
- package/dist/test/e2e/api/admin/event.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/feature.e2e.test.js +69 -63
- package/dist/test/e2e/api/admin/feature.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/project/environments.e2e.test.d.ts +1 -0
- package/dist/test/e2e/api/admin/project/environments.e2e.test.js +65 -0
- package/dist/test/e2e/api/admin/project/environments.e2e.test.js.map +1 -0
- package/dist/test/e2e/api/admin/project/features.e2e.test.d.ts +1 -0
- package/dist/test/e2e/api/admin/project/features.e2e.test.js +1267 -0
- package/dist/test/e2e/api/admin/project/features.e2e.test.js.map +1 -0
- package/dist/test/e2e/api/admin/project/project.health.e2e.test.js +76 -0
- package/dist/test/e2e/api/admin/project/project.health.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/project/projects.e2e.test.d.ts +1 -0
- package/dist/test/e2e/api/admin/project/projects.e2e.test.js +30 -0
- package/dist/test/e2e/api/admin/project/projects.e2e.test.js.map +1 -0
- package/dist/test/e2e/api/admin/state.e2e.test.js +161 -0
- package/dist/test/e2e/api/admin/state.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/client/feature.e2e.test.js +83 -29
- package/dist/test/e2e/api/client/feature.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/client/feature.env.disabled.e2e.test.d.ts +1 -0
- package/dist/test/e2e/api/client/feature.env.disabled.e2e.test.js +49 -0
- package/dist/test/e2e/api/client/feature.env.disabled.e2e.test.js.map +1 -0
- package/dist/test/e2e/api/client/feature.token.access.e2e.test.d.ts +1 -0
- package/dist/test/e2e/api/client/feature.token.access.e2e.test.js +156 -0
- package/dist/test/e2e/api/client/feature.token.access.e2e.test.js.map +1 -0
- package/dist/test/e2e/api/client/metrics.e2e.access.e2e.test.d.ts +1 -0
- package/dist/test/e2e/api/client/metrics.e2e.access.e2e.test.js +42 -0
- package/dist/test/e2e/api/client/metrics.e2e.access.e2e.test.js.map +1 -0
- package/dist/test/e2e/api/client/metrics.e2e.test.js +14 -13
- package/dist/test/e2e/api/client/metrics.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/client/metricsV2.e2e.test.d.ts +1 -0
- package/dist/test/e2e/api/client/metricsV2.e2e.test.js +95 -0
- package/dist/test/e2e/api/client/metricsV2.e2e.test.js.map +1 -0
- package/dist/test/e2e/api/client/register.e2e.test.js +18 -14
- package/dist/test/e2e/api/client/register.e2e.test.js.map +1 -1
- package/dist/test/e2e/helpers/database-config.d.ts +1 -1
- package/dist/test/e2e/helpers/database-config.js +12 -8
- package/dist/test/e2e/helpers/database-config.js.map +1 -1
- package/dist/test/e2e/helpers/database-init.d.ts +7 -1
- package/dist/test/e2e/helpers/database-init.js +8 -7
- package/dist/test/e2e/helpers/database-init.js.map +1 -1
- package/dist/test/e2e/helpers/database.json +5 -2
- package/dist/test/e2e/helpers/test-helper.d.ts +1 -1
- package/dist/test/e2e/helpers/test-helper.js +4 -5
- package/dist/test/e2e/helpers/test-helper.js.map +1 -1
- package/dist/test/e2e/services/api-token-service.e2e.test.js +28 -15
- package/dist/test/e2e/services/api-token-service.e2e.test.js.map +1 -1
- package/dist/test/e2e/services/environment-service.test.js +36 -38
- package/dist/test/e2e/services/environment-service.test.js.map +1 -1
- package/dist/test/e2e/services/feature-toggle-service-v2.e2e.test.js +17 -11
- package/dist/test/e2e/services/feature-toggle-service-v2.e2e.test.js.map +1 -1
- package/dist/test/e2e/services/project-health-service.e2e.test.js +10 -10
- package/dist/test/e2e/services/project-health-service.e2e.test.js.map +1 -1
- package/dist/test/e2e/services/project-service.e2e.test.js +25 -2
- package/dist/test/e2e/services/project-service.e2e.test.js.map +1 -1
- package/dist/test/e2e/stores/client-metrics-store-v2.e2e.test.d.ts +1 -0
- package/dist/test/e2e/stores/client-metrics-store-v2.e2e.test.js +338 -0
- package/dist/test/e2e/stores/client-metrics-store-v2.e2e.test.js.map +1 -0
- package/dist/test/e2e/stores/feature-tag-store.e2e.test.js +3 -3
- package/dist/test/e2e/stores/feature-tag-store.e2e.test.js.map +1 -1
- package/dist/test/e2e/stores/project-store.e2e.test.js +4 -1
- package/dist/test/e2e/stores/project-store.e2e.test.js.map +1 -1
- package/dist/test/e2e/stores/user-feedback-store.e2e.test.js +1 -1
- package/dist/test/e2e/stores/user-feedback-store.e2e.test.js.map +1 -1
- package/dist/test/fixtures/fake-api-token-store.d.ts +2 -1
- package/dist/test/fixtures/fake-api-token-store.js.map +1 -1
- package/dist/test/fixtures/fake-client-metrics-store-v2.d.ts +20 -0
- package/dist/test/fixtures/fake-client-metrics-store-v2.js +52 -0
- package/dist/test/fixtures/fake-client-metrics-store-v2.js.map +1 -0
- package/dist/test/fixtures/fake-environment-store.d.ts +5 -3
- package/dist/test/fixtures/fake-environment-store.js +22 -15
- package/dist/test/fixtures/fake-environment-store.js.map +1 -1
- package/dist/test/fixtures/fake-event-store.d.ts +1 -0
- package/dist/test/fixtures/fake-event-store.js +3 -0
- package/dist/test/fixtures/fake-event-store.js.map +1 -1
- package/dist/test/fixtures/fake-feature-environment-store.d.ts +8 -5
- package/dist/test/fixtures/fake-feature-environment-store.js +38 -10
- package/dist/test/fixtures/fake-feature-environment-store.js.map +1 -1
- package/dist/test/fixtures/fake-feature-strategies-store.d.ts +7 -13
- package/dist/test/fixtures/fake-feature-strategies-store.js +13 -50
- package/dist/test/fixtures/fake-feature-strategies-store.js.map +1 -1
- package/dist/test/fixtures/fake-feature-toggle-client-store.d.ts +9 -0
- package/dist/test/fixtures/fake-feature-toggle-client-store.js +50 -0
- package/dist/test/fixtures/fake-feature-toggle-client-store.js.map +1 -0
- package/dist/test/fixtures/fake-feature-toggle-store.d.ts +7 -9
- package/dist/test/fixtures/fake-feature-toggle-store.js +7 -14
- package/dist/test/fixtures/fake-feature-toggle-store.js.map +1 -1
- package/dist/test/fixtures/fake-project-store.d.ts +1 -2
- package/dist/test/fixtures/fake-project-store.js +0 -7
- package/dist/test/fixtures/fake-project-store.js.map +1 -1
- package/dist/test/fixtures/permissions.d.ts +3 -3
- package/dist/test/fixtures/permissions.js +5 -4
- package/dist/test/fixtures/permissions.js.map +1 -1
- package/dist/test/fixtures/store.js +4 -0
- package/dist/test/fixtures/store.js.map +1 -1
- package/package.json +52 -45
- package/dist/lib/extract-user.d.ts +0 -2
- package/dist/lib/extract-user.js +0 -6
- package/dist/lib/extract-user.js.map +0 -1
- package/dist/test/e2e/api/admin/boostrap.test.js.map +0 -1
- package/dist/test/e2e/api/admin/project/feature.strategy.e2e.test.js +0 -516
- package/dist/test/e2e/api/admin/project/feature.strategy.e2e.test.js.map +0 -1
- package/docs/api/oas/swagger-ui-bundle.js +0 -3
- package/docs/api/oas/swagger-ui-bundle.js.map +0 -1
- package/docs/api/oas/swagger-ui-es-bundle-core.js +0 -3
- package/docs/api/oas/swagger-ui-es-bundle-core.js.map +0 -1
- package/docs/api/oas/swagger-ui-es-bundle.js +0 -3
- package/docs/api/oas/swagger-ui-es-bundle.js.map +0 -1
- package/docs/api/oas/swagger-ui-standalone-preset.js +0 -3
- package/docs/api/oas/swagger-ui-standalone-preset.js.map +0 -1
- package/docs/api/oas/swagger-ui.css +0 -8906
- package/docs/api/oas/swagger-ui.css.map +0 -1
- package/docs/api/oas/swagger-ui.js +0 -3
- package/docs/api/oas/swagger-ui.js.map +0 -1
- package/docs/api/oas/swagger.json +0 -1479
|
@@ -4,13 +4,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const events_1 = require("events");
|
|
7
|
-
const migrator_1 =
|
|
7
|
+
const migrator_1 = require("../../../migrator");
|
|
8
8
|
const db_1 = require("../../../lib/db");
|
|
9
9
|
const db_pool_1 = require("../../../lib/db/db-pool");
|
|
10
|
-
const database_config_1 =
|
|
10
|
+
const database_config_1 = require("./database-config");
|
|
11
11
|
const test_config_1 = require("../../config/test-config");
|
|
12
12
|
const database_json_1 = __importDefault(require("./database.json"));
|
|
13
13
|
const no_logger_1 = __importDefault(require("../../fixtures/no-logger"));
|
|
14
|
+
const constants_1 = require("../../../lib/util/constants");
|
|
14
15
|
// require('db-migrate-shared').log.silence(false);
|
|
15
16
|
// because of migrator bug
|
|
16
17
|
delete process.env.DATABASE_URL;
|
|
@@ -46,10 +47,10 @@ function createTagTypes(store) {
|
|
|
46
47
|
return database_json_1.default.tag_types.map((t) => store.createTagType(t));
|
|
47
48
|
}
|
|
48
49
|
async function connectProject(store) {
|
|
49
|
-
await store.connectProject(
|
|
50
|
+
await store.connectProject(constants_1.DEFAULT_ENV, 'default');
|
|
50
51
|
}
|
|
51
52
|
async function createEnvironments(store) {
|
|
52
|
-
await Promise.all(database_json_1.default.environments.map(async (e) => store.
|
|
53
|
+
await Promise.all(database_json_1.default.environments.map(async (e) => store.create(e)));
|
|
53
54
|
}
|
|
54
55
|
async function setupDatabase(stores) {
|
|
55
56
|
await createEnvironments(stores.environmentStore);
|
|
@@ -57,12 +58,12 @@ async function setupDatabase(stores) {
|
|
|
57
58
|
await Promise.all(createContextFields(stores.contextFieldStore));
|
|
58
59
|
await Promise.all(createProjects(stores.projectStore));
|
|
59
60
|
await Promise.all(createTagTypes(stores.tagTypeStore));
|
|
60
|
-
await connectProject(stores.
|
|
61
|
+
await connectProject(stores.featureEnvironmentStore);
|
|
61
62
|
}
|
|
62
63
|
async function init(databaseSchema = 'test', getLogger = no_logger_1.default) {
|
|
63
64
|
const config = test_config_1.createTestConfig({
|
|
64
65
|
db: {
|
|
65
|
-
...database_config_1.
|
|
66
|
+
...database_config_1.getDbConfig(),
|
|
66
67
|
pool: { min: 2, max: 8 },
|
|
67
68
|
schema: databaseSchema,
|
|
68
69
|
ssl: false,
|
|
@@ -74,7 +75,7 @@ async function init(databaseSchema = 'test', getLogger = no_logger_1.default) {
|
|
|
74
75
|
await db.raw(`DROP SCHEMA IF EXISTS ${config.db.schema} CASCADE`);
|
|
75
76
|
await db.raw(`CREATE SCHEMA IF NOT EXISTS ${config.db.schema}`);
|
|
76
77
|
// @ts-ignore
|
|
77
|
-
await migrator_1.
|
|
78
|
+
await migrator_1.migrateDb({ ...config, databaseSchema: config.db.schema });
|
|
78
79
|
await db.destroy();
|
|
79
80
|
const testDb = db_pool_1.createDb(config);
|
|
80
81
|
const stores = await db_1.createStores(config, eventBus, testDb);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database-init.js","sourceRoot":"","sources":["../../../../src/test/e2e/helpers/database-init.ts"],"names":[],"mappings":";;;;;AAAA,mCAAsC;AACtC,
|
|
1
|
+
{"version":3,"file":"database-init.js","sourceRoot":"","sources":["../../../../src/test/e2e/helpers/database-init.ts"],"names":[],"mappings":";;;;;AAAA,mCAAsC;AACtC,gDAA8C;AAC9C,wCAA+C;AAC/C,qDAAmD;AACnD,uDAAgD;AAChD,0DAA4D;AAC5D,oEAAsC;AAEtC,yEAAwD;AAIxD,2DAA0D;AAE1D,mDAAmD;AAEnD,0BAA0B;AAC1B,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;AAEhC,4EAA4E;AAC5E,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;AAE3B,KAAK,UAAU,aAAa,CAAC,IAAI;IAC7B,OAAO,OAAO,CAAC,GAAG,CAAC;QACf,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,EAAE;QAChC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE;QAC9B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE;QAC5B,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,GAAG,EAAE;QACvC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,GAAG,EAAE;QACpC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,GAAG,EAAE;QAClC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE;QACzB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE;QAC5B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE;QACxB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE;QAC7B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE;QAC1B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE;QACzB,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,EAAE;KACnC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAK;IAC3B,OAAO,uBAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAK;IAC9B,OAAO,uBAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,cAAc,CAAC,KAAK;IACzB,OAAO,uBAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,cAAc,CAAC,KAAK;IACzB,OAAO,uBAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,KAA+B;IACzD,MAAM,KAAK,CAAC,cAAc,CAAC,uBAAW,EAAE,SAAS,CAAC,CAAC;AACvD,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,KAAuB;IACrD,MAAM,OAAO,CAAC,GAAG,CAAC,uBAAO,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,MAAM;IAC/B,MAAM,kBAAkB,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAClD,MAAM,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;IAC1D,MAAM,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACjE,MAAM,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IACvD,MAAM,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IACvD,MAAM,cAAc,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;AACzD,CAAC;AAQc,KAAK,UAAU,IAAI,CAC9B,iBAAyB,MAAM,EAC/B,YAAyB,mBAAgB;IAEzC,MAAM,MAAM,GAAG,8BAAgB,CAAC;QAC5B,EAAE,EAAE;YACA,GAAG,6BAAW,EAAE;YAChB,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;YACxB,MAAM,EAAE,cAAc;YACtB,GAAG,EAAE,KAAK;SACb;QACD,SAAS;KACZ,CAAC,CAAC;IAEH,MAAM,EAAE,GAAG,kBAAQ,CAAC,MAAM,CAAC,CAAC;IAC5B,MAAM,QAAQ,GAAG,IAAI,qBAAY,EAAE,CAAC;IAEpC,MAAM,EAAE,CAAC,GAAG,CAAC,yBAAyB,MAAM,CAAC,EAAE,CAAC,MAAM,UAAU,CAAC,CAAC;IAClE,MAAM,EAAE,CAAC,GAAG,CAAC,+BAA+B,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;IAChE,aAAa;IACb,MAAM,oBAAS,CAAC,EAAE,GAAG,MAAM,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;IACjE,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC;IACnB,MAAM,MAAM,GAAG,kBAAQ,CAAC,MAAM,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,MAAM,iBAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC5D,MAAM,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAC7C,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;IAC5B,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;IAE5B,OAAO;QACH,MAAM;QACN,KAAK,EAAE,KAAK,IAAI,EAAE;YACd,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;YAC5B,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,EAAE,KAAK,IAAI,EAAE;YAChB,MAAM,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAAC;YAC3D,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACzC,mBAAmB,CAAC,OAAO,EAAE,CAAC;gBAC9B,kBAAkB,CAAC,OAAO,EAAE,CAAC;gBAC7B,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACnE,CAAC,CAAC,CAAC;QACP,CAAC;KACJ,CAAC;AACN,CAAC;AA5CD,uBA4CC;AAED,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC"}
|
|
@@ -8,6 +8,6 @@ export interface IUnleashTest {
|
|
|
8
8
|
}
|
|
9
9
|
export declare function setupApp(stores: IUnleashStores): Promise<IUnleashTest>;
|
|
10
10
|
export declare function setupAppWithCustomConfig(stores: IUnleashStores, customOptions: any): Promise<IUnleashTest>;
|
|
11
|
-
export declare function setupAppWithAuth(stores: IUnleashStores): Promise<IUnleashTest>;
|
|
11
|
+
export declare function setupAppWithAuth(stores: IUnleashStores, customOptions?: any): Promise<IUnleashTest>;
|
|
12
12
|
export declare function setupAppWithCustomAuth(stores: IUnleashStores, preHook: Function): Promise<IUnleashTest>;
|
|
13
13
|
export declare function setupAppWithBaseUrl(stores: IUnleashStores): Promise<IUnleashTest>;
|
|
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.setupAppWithBaseUrl = exports.setupAppWithCustomAuth = exports.setupAppWithAuth = exports.setupAppWithCustomConfig = exports.setupApp = void 0;
|
|
7
|
+
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
|
|
7
8
|
const supertest_1 = __importDefault(require("supertest"));
|
|
8
9
|
const events_1 = __importDefault(require("events"));
|
|
9
10
|
const app_1 = __importDefault(require("../../../lib/app"));
|
|
@@ -41,14 +42,12 @@ async function setupApp(stores) {
|
|
|
41
42
|
return createApp(stores);
|
|
42
43
|
}
|
|
43
44
|
exports.setupApp = setupApp;
|
|
44
|
-
async function setupAppWithCustomConfig(stores,
|
|
45
|
-
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
46
|
-
customOptions) {
|
|
45
|
+
async function setupAppWithCustomConfig(stores, customOptions) {
|
|
47
46
|
return createApp(stores, undefined, undefined, customOptions);
|
|
48
47
|
}
|
|
49
48
|
exports.setupAppWithCustomConfig = setupAppWithCustomConfig;
|
|
50
|
-
async function setupAppWithAuth(stores) {
|
|
51
|
-
return createApp(stores, option_1.IAuthType.DEMO);
|
|
49
|
+
async function setupAppWithAuth(stores, customOptions) {
|
|
50
|
+
return createApp(stores, option_1.IAuthType.DEMO, undefined, customOptions);
|
|
52
51
|
}
|
|
53
52
|
exports.setupAppWithAuth = setupAppWithAuth;
|
|
54
53
|
async function setupAppWithCustomAuth(stores, preHook) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-helper.js","sourceRoot":"","sources":["../../../../src/test/e2e/helpers/test-helper.ts"],"names":[],"mappings":";;;;;;AAAA,0DAAkC;AAElC,oDAAkC;AAClC,2DAAsC;AACtC,0DAA4D;AAC5D,sDAAsD;AACtD,oDAAuD;AACvD,oFAA2D;AAI3D,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAC;AAQ9B,SAAS,SAAS,CACd,MAAM,EACN,mBAAmB,GAAG,kBAAS,CAAC,IAAI,EACpC,OAAkB,EAClB,aAAmB;IAEnB,MAAM,MAAM,GAAG,8BAAgB,CAAC;QAC5B,cAAc,EAAE;YACZ,IAAI,EAAE,mBAAmB;YACzB,iBAAiB,EAAE,OAAO;SAC7B;QACD,MAAM,EAAE;YACJ,UAAU,EAAE,uBAAuB;SACtC;QACD,GAAG,aAAa;KACnB,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,yBAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG,oBAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,IAAI,gBAAY,EAAE,CAAC;IACnC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,GAAG,GAAG,aAAM,CACd,MAAM,EACN,MAAM,EACN,QAAQ,EACR,IAAI,gBAAY,EAAE,EAClB,cAAc,CACjB,CAAC;IACF,MAAM,OAAO,GAAG,mBAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAErC,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;QACvB,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;QAClC,QAAQ,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC;QACxC,QAAQ,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;IACvC,CAAC,CAAC;IAEF,6CAA6C;IAC7C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC1C,CAAC;AAEM,KAAK,UAAU,QAAQ,CAAC,MAAsB;IACjD,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC;AAFD,4BAEC;AAEM,KAAK,UAAU,wBAAwB,CAC1C,MAAsB
|
|
1
|
+
{"version":3,"file":"test-helper.js","sourceRoot":"","sources":["../../../../src/test/e2e/helpers/test-helper.ts"],"names":[],"mappings":";;;;;;AAAA,sEAAsE;AACtE,0DAAkC;AAElC,oDAAkC;AAClC,2DAAsC;AACtC,0DAA4D;AAC5D,sDAAsD;AACtD,oDAAuD;AACvD,oFAA2D;AAI3D,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAC;AAQ9B,SAAS,SAAS,CACd,MAAM,EACN,mBAAmB,GAAG,kBAAS,CAAC,IAAI,EACpC,OAAkB,EAClB,aAAmB;IAEnB,MAAM,MAAM,GAAG,8BAAgB,CAAC;QAC5B,cAAc,EAAE;YACZ,IAAI,EAAE,mBAAmB;YACzB,iBAAiB,EAAE,OAAO;SAC7B;QACD,MAAM,EAAE;YACJ,UAAU,EAAE,uBAAuB;SACtC;QACD,GAAG,aAAa;KACnB,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,yBAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG,oBAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,IAAI,gBAAY,EAAE,CAAC;IACnC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,GAAG,GAAG,aAAM,CACd,MAAM,EACN,MAAM,EACN,QAAQ,EACR,IAAI,gBAAY,EAAE,EAClB,cAAc,CACjB,CAAC;IACF,MAAM,OAAO,GAAG,mBAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAErC,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;QACvB,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;QAClC,QAAQ,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC;QACxC,QAAQ,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;IACvC,CAAC,CAAC;IAEF,6CAA6C;IAC7C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC1C,CAAC;AAEM,KAAK,UAAU,QAAQ,CAAC,MAAsB;IACjD,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC;AAFD,4BAEC;AAEM,KAAK,UAAU,wBAAwB,CAC1C,MAAsB,EACtB,aAAkB;IAElB,OAAO,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;AAClE,CAAC;AALD,4DAKC;AAEM,KAAK,UAAU,gBAAgB,CAClC,MAAsB,EACtB,aAAmB;IAEnB,OAAO,SAAS,CAAC,MAAM,EAAE,kBAAS,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;AACvE,CAAC;AALD,4CAKC;AAEM,KAAK,UAAU,sBAAsB,CACxC,MAAsB,EACtB,OAAiB;IAEjB,OAAO,SAAS,CAAC,MAAM,EAAE,kBAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACxD,CAAC;AALD,wDAKC;AACM,KAAK,UAAU,mBAAmB,CACrC,MAAsB;IAEtB,OAAO,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE;QAC3C,MAAM,EAAE;YACJ,UAAU,EAAE,uBAAuB;YACnC,WAAW,EAAE,SAAS;SACzB;KACJ,CAAC,CAAC;AACP,CAAC;AATD,kDASC"}
|
|
@@ -7,7 +7,8 @@ const database_init_1 = __importDefault(require("../helpers/database-init"));
|
|
|
7
7
|
const no_logger_1 = __importDefault(require("../../fixtures/no-logger"));
|
|
8
8
|
const api_token_service_1 = require("../../../lib/services/api-token-service");
|
|
9
9
|
const test_config_1 = require("../../config/test-config");
|
|
10
|
-
const
|
|
10
|
+
const api_token_1 = require("../../../lib/types/models/api-token");
|
|
11
|
+
const constants_1 = require("../../../lib/util/constants");
|
|
11
12
|
let db;
|
|
12
13
|
let stores;
|
|
13
14
|
let apiTokenService;
|
|
@@ -37,31 +38,37 @@ test('should have empty list of tokens', async () => {
|
|
|
37
38
|
expect(activeTokens.length).toBe(0);
|
|
38
39
|
});
|
|
39
40
|
test('should create client token', async () => {
|
|
40
|
-
const token = await apiTokenService.
|
|
41
|
+
const token = await apiTokenService.createApiToken({
|
|
41
42
|
username: 'default-client',
|
|
42
|
-
type:
|
|
43
|
+
type: api_token_1.ApiTokenType.CLIENT,
|
|
44
|
+
project: '*',
|
|
45
|
+
environment: constants_1.DEFAULT_ENV,
|
|
43
46
|
});
|
|
44
47
|
const allTokens = await apiTokenService.getAllTokens();
|
|
45
48
|
expect(allTokens.length).toBe(1);
|
|
46
49
|
expect(token.secret.length > 32).toBe(true);
|
|
47
|
-
expect(token.type).toBe(
|
|
50
|
+
expect(token.type).toBe(api_token_1.ApiTokenType.CLIENT);
|
|
48
51
|
expect(token.username).toBe('default-client');
|
|
49
52
|
expect(allTokens[0].secret).toBe(token.secret);
|
|
50
53
|
});
|
|
51
54
|
test('should create admin token', async () => {
|
|
52
|
-
const token = await apiTokenService.
|
|
55
|
+
const token = await apiTokenService.createApiToken({
|
|
53
56
|
username: 'admin',
|
|
54
|
-
type:
|
|
57
|
+
type: api_token_1.ApiTokenType.ADMIN,
|
|
58
|
+
project: '*',
|
|
59
|
+
environment: '*',
|
|
55
60
|
});
|
|
56
61
|
expect(token.secret.length > 32).toBe(true);
|
|
57
|
-
expect(token.type).toBe(
|
|
62
|
+
expect(token.type).toBe(api_token_1.ApiTokenType.ADMIN);
|
|
58
63
|
});
|
|
59
64
|
test('should set expiry of token', async () => {
|
|
60
65
|
const time = new Date('2022-01-01');
|
|
61
|
-
await apiTokenService.
|
|
66
|
+
await apiTokenService.createApiToken({
|
|
62
67
|
username: 'default-client',
|
|
63
|
-
type:
|
|
68
|
+
type: api_token_1.ApiTokenType.CLIENT,
|
|
64
69
|
expiresAt: time,
|
|
70
|
+
project: '*',
|
|
71
|
+
environment: constants_1.DEFAULT_ENV,
|
|
65
72
|
});
|
|
66
73
|
const [token] = await apiTokenService.getAllTokens();
|
|
67
74
|
expect(token.expiresAt).toEqual(time);
|
|
@@ -69,10 +76,12 @@ test('should set expiry of token', async () => {
|
|
|
69
76
|
test('should update expiry of token', async () => {
|
|
70
77
|
const time = new Date('2022-01-01');
|
|
71
78
|
const newTime = new Date('2023-01-01');
|
|
72
|
-
const token = await apiTokenService.
|
|
79
|
+
const token = await apiTokenService.createApiToken({
|
|
73
80
|
username: 'default-client',
|
|
74
|
-
type:
|
|
81
|
+
type: api_token_1.ApiTokenType.CLIENT,
|
|
75
82
|
expiresAt: time,
|
|
83
|
+
project: '*',
|
|
84
|
+
environment: constants_1.DEFAULT_ENV,
|
|
76
85
|
});
|
|
77
86
|
await apiTokenService.updateExpiry(token.secret, newTime);
|
|
78
87
|
const [updatedToken] = await apiTokenService.getAllTokens();
|
|
@@ -81,15 +90,19 @@ test('should update expiry of token', async () => {
|
|
|
81
90
|
test('should only return valid tokens', async () => {
|
|
82
91
|
const today = new Date();
|
|
83
92
|
const tomorrow = new Date(today.getTime() + 24 * 60 * 60 * 1000);
|
|
84
|
-
await apiTokenService.
|
|
93
|
+
await apiTokenService.createApiToken({
|
|
85
94
|
username: 'default-expired',
|
|
86
|
-
type:
|
|
95
|
+
type: api_token_1.ApiTokenType.CLIENT,
|
|
87
96
|
expiresAt: new Date('2021-01-01'),
|
|
97
|
+
project: '*',
|
|
98
|
+
environment: constants_1.DEFAULT_ENV,
|
|
88
99
|
});
|
|
89
|
-
const activeToken = await apiTokenService.
|
|
100
|
+
const activeToken = await apiTokenService.createApiToken({
|
|
90
101
|
username: 'default-valid',
|
|
91
|
-
type:
|
|
102
|
+
type: api_token_1.ApiTokenType.CLIENT,
|
|
92
103
|
expiresAt: tomorrow,
|
|
104
|
+
project: '*',
|
|
105
|
+
environment: constants_1.DEFAULT_ENV,
|
|
93
106
|
});
|
|
94
107
|
const tokens = await apiTokenService.getAllActiveTokens();
|
|
95
108
|
expect(tokens.length).toBe(1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-token-service.e2e.test.js","sourceRoot":"","sources":["../../../../src/test/e2e/services/api-token-service.e2e.test.ts"],"names":[],"mappings":";;;;;AAAA,6EAA8C;AAC9C,yEAAiD;AACjD,+EAA0E;AAC1E,0DAA4D;AAC5D
|
|
1
|
+
{"version":3,"file":"api-token-service.e2e.test.js","sourceRoot":"","sources":["../../../../src/test/e2e/services/api-token-service.e2e.test.ts"],"names":[],"mappings":";;;;;AAAA,6EAA8C;AAC9C,yEAAiD;AACjD,+EAA0E;AAC1E,0DAA4D;AAC5D,mEAA8E;AAC9E,2DAA0D;AAE1D,IAAI,EAAE,CAAC;AACP,IAAI,MAAM,CAAC;AACX,IAAI,eAAgC,CAAC;AAErC,SAAS,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,MAAM,GAAG,8BAAgB,CAAC;QAC5B,MAAM,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE;KACnC,CAAC,CAAC;IACH,EAAE,GAAG,MAAM,uBAAM,CAAC,0BAA0B,EAAE,mBAAS,CAAC,CAAC;IACzD,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;IACnB,sCAAsC;IACtC,eAAe,GAAG,IAAI,mCAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC1D,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,KAAK,IAAI,EAAE;IAChB,IAAI,EAAE,EAAE;QACJ,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC;KACtB;AACL,CAAC,CAAC,CAAC;AACH,SAAS,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;IACnD,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAY,EAAE,EAAE,CAC1C,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CACxC,CAAC;IACF,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACjC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;IAChD,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,YAAY,EAAE,CAAC;IACvD,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,YAAY,EAAE,CAAC;IAC1D,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;IAC1C,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,cAAc,CAAC;QAC/C,QAAQ,EAAE,gBAAgB;QAC1B,IAAI,EAAE,wBAAY,CAAC,MAAM;QACzB,OAAO,EAAE,GAAG;QACZ,WAAW,EAAE,uBAAW;KAC3B,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,YAAY,EAAE,CAAC;IAEvD,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,wBAAY,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC9C,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACnD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;IACzC,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,cAAc,CAAC;QAC/C,QAAQ,EAAE,OAAO;QACjB,IAAI,EAAE,wBAAY,CAAC,KAAK;QACxB,OAAO,EAAE,GAAG;QACZ,WAAW,EAAE,GAAG;KACnB,CAAC,CAAC;IAEH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,wBAAY,CAAC,KAAK,CAAC,CAAC;AAChD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;IAC1C,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC;IACpC,MAAM,eAAe,CAAC,cAAc,CAAC;QACjC,QAAQ,EAAE,gBAAgB;QAC1B,IAAI,EAAE,wBAAY,CAAC,MAAM;QACzB,SAAS,EAAE,IAAI;QACf,OAAO,EAAE,GAAG;QACZ,WAAW,EAAE,uBAAW;KAC3B,CAAC,CAAC;IAEH,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,eAAe,CAAC,YAAY,EAAE,CAAC;IAErD,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC1C,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;IAC7C,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC;IAEvC,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,cAAc,CAAC;QAC/C,QAAQ,EAAE,gBAAgB;QAC1B,IAAI,EAAE,wBAAY,CAAC,MAAM;QACzB,SAAS,EAAE,IAAI;QACf,OAAO,EAAE,GAAG;QACZ,WAAW,EAAE,uBAAW;KAC3B,CAAC,CAAC;IAEH,MAAM,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE1D,MAAM,CAAC,YAAY,CAAC,GAAG,MAAM,eAAe,CAAC,YAAY,EAAE,CAAC;IAE5D,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACpD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;IAC/C,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;IACzB,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAEjE,MAAM,eAAe,CAAC,cAAc,CAAC;QACjC,QAAQ,EAAE,iBAAiB;QAC3B,IAAI,EAAE,wBAAY,CAAC,MAAM;QACzB,SAAS,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;QACjC,OAAO,EAAE,GAAG;QACZ,WAAW,EAAE,uBAAW;KAC3B,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,cAAc,CAAC;QACrD,QAAQ,EAAE,eAAe;QACzB,IAAI,EAAE,wBAAY,CAAC,MAAM;QACzB,SAAS,EAAE,QAAQ;QACnB,OAAO,EAAE,GAAG;QACZ,WAAW,EAAE,uBAAW;KAC3B,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,kBAAkB,EAAE,CAAC;IAE1D,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AACtD,CAAC,CAAC,CAAC"}
|
|
@@ -20,91 +20,89 @@ beforeAll(async () => {
|
|
|
20
20
|
afterAll(async () => {
|
|
21
21
|
await db.destroy();
|
|
22
22
|
});
|
|
23
|
-
test('Can
|
|
24
|
-
const created = await
|
|
23
|
+
test('Can get environment', async () => {
|
|
24
|
+
const created = await db.stores.environmentStore.create({
|
|
25
25
|
name: 'testenv',
|
|
26
|
-
|
|
26
|
+
type: 'production',
|
|
27
27
|
});
|
|
28
28
|
const retrieved = await service.get('testenv');
|
|
29
29
|
expect(retrieved).toEqual(created);
|
|
30
30
|
});
|
|
31
|
-
test('Can delete environment', async () => {
|
|
32
|
-
await service.create({
|
|
33
|
-
name: 'testenv',
|
|
34
|
-
displayName: 'Environment for testing',
|
|
35
|
-
});
|
|
36
|
-
await service.delete('testenv');
|
|
37
|
-
return expect(async () => service.get('testenv')).rejects.toThrow(notfound_error_1.default);
|
|
38
|
-
});
|
|
39
31
|
test('Can get all', async () => {
|
|
40
|
-
await
|
|
41
|
-
name: '
|
|
42
|
-
|
|
32
|
+
await db.stores.environmentStore.create({
|
|
33
|
+
name: 'testenv2',
|
|
34
|
+
type: 'production',
|
|
43
35
|
});
|
|
44
36
|
const environments = await service.getAll();
|
|
45
|
-
expect(environments).toHaveLength(
|
|
46
|
-
});
|
|
47
|
-
test('Can update display name', async () => {
|
|
48
|
-
await service.create({
|
|
49
|
-
name: 'testenv',
|
|
50
|
-
displayName: 'Environment for testing',
|
|
51
|
-
});
|
|
52
|
-
await service.update('testenv', { displayName: 'Different name' });
|
|
53
|
-
const updated = await service.get('testenv');
|
|
54
|
-
expect(updated.displayName).toEqual('Different name');
|
|
37
|
+
expect(environments).toHaveLength(3); // the one we created plus 'default'
|
|
55
38
|
});
|
|
56
39
|
test('Can connect environment to project', async () => {
|
|
57
|
-
await
|
|
58
|
-
|
|
40
|
+
await db.stores.environmentStore.create({
|
|
41
|
+
name: 'test-connection',
|
|
42
|
+
type: 'production',
|
|
43
|
+
});
|
|
44
|
+
await stores.featureToggleStore.create('default', {
|
|
59
45
|
name: 'test-connection',
|
|
60
46
|
type: 'release',
|
|
61
47
|
description: '',
|
|
62
48
|
stale: false,
|
|
63
49
|
variants: [],
|
|
64
50
|
});
|
|
65
|
-
await service.
|
|
66
|
-
const overview = await stores.
|
|
51
|
+
await service.addEnvironmentToProject('test-connection', 'default');
|
|
52
|
+
const overview = await stores.featureStrategiesStore.getFeatureOverview('default', false);
|
|
67
53
|
overview.forEach((f) => {
|
|
68
54
|
expect(f.environments).toEqual([
|
|
69
55
|
{
|
|
70
56
|
name: 'test-connection',
|
|
71
|
-
displayName: '',
|
|
72
57
|
enabled: false,
|
|
58
|
+
sortOrder: 9999,
|
|
59
|
+
type: 'production',
|
|
73
60
|
},
|
|
74
61
|
]);
|
|
75
62
|
});
|
|
76
63
|
});
|
|
77
64
|
test('Can remove environment from project', async () => {
|
|
78
|
-
await
|
|
79
|
-
|
|
65
|
+
await db.stores.environmentStore.create({
|
|
66
|
+
name: 'removal-test',
|
|
67
|
+
type: 'production',
|
|
68
|
+
});
|
|
69
|
+
await stores.featureToggleStore.create('default', {
|
|
80
70
|
name: 'removal-test',
|
|
81
71
|
});
|
|
82
72
|
await service.removeEnvironmentFromProject('test-connection', 'default');
|
|
83
|
-
await service.
|
|
84
|
-
let overview = await stores.
|
|
73
|
+
await service.addEnvironmentToProject('removal-test', 'default');
|
|
74
|
+
let overview = await stores.featureStrategiesStore.getFeatureOverview('default', false);
|
|
85
75
|
expect(overview.length).toBeGreaterThan(0);
|
|
86
76
|
overview.forEach((f) => {
|
|
87
77
|
expect(f.environments).toEqual([
|
|
88
78
|
{
|
|
89
79
|
name: 'removal-test',
|
|
90
|
-
displayName: '',
|
|
91
80
|
enabled: false,
|
|
81
|
+
sortOrder: 9999,
|
|
82
|
+
type: 'production',
|
|
92
83
|
},
|
|
93
84
|
]);
|
|
94
85
|
});
|
|
95
86
|
await service.removeEnvironmentFromProject('removal-test', 'default');
|
|
96
|
-
overview = await stores.
|
|
87
|
+
overview = await stores.featureStrategiesStore.getFeatureOverview('default', false);
|
|
97
88
|
expect(overview.length).toBeGreaterThan(0);
|
|
98
89
|
overview.forEach((o) => {
|
|
99
90
|
expect(o.environments).toEqual([]);
|
|
100
91
|
});
|
|
101
92
|
});
|
|
102
93
|
test('Adding same environment twice should throw a NameExistsError', async () => {
|
|
103
|
-
await
|
|
94
|
+
await db.stores.environmentStore.create({
|
|
95
|
+
name: 'uniqueness-test',
|
|
96
|
+
type: 'production',
|
|
97
|
+
});
|
|
104
98
|
await service.removeEnvironmentFromProject('test-connection', 'default');
|
|
105
99
|
await service.removeEnvironmentFromProject('removal-test', 'default');
|
|
106
|
-
await service.
|
|
107
|
-
return expect(async () => service.
|
|
100
|
+
await service.addEnvironmentToProject('uniqueness-test', 'default');
|
|
101
|
+
return expect(async () => service.addEnvironmentToProject('uniqueness-test', 'default')).rejects.toThrow(new name_exists_error_1.default('default already has the environment uniqueness-test enabled'));
|
|
108
102
|
});
|
|
109
103
|
test('Removing environment not connected to project should be a noop', async () => expect(async () => service.removeEnvironmentFromProject('some-non-existing-environment', 'default')).resolves);
|
|
104
|
+
test('Trying to get an environment that does not exist throws NotFoundError', async () => {
|
|
105
|
+
const envName = 'this-should-not-exist';
|
|
106
|
+
await expect(async () => service.get(envName)).rejects.toThrow(new notfound_error_1.default(`Could not find environment with name: ${envName}`));
|
|
107
|
+
});
|
|
110
108
|
//# sourceMappingURL=environment-service.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment-service.test.js","sourceRoot":"","sources":["../../../../src/test/e2e/services/environment-service.test.ts"],"names":[],"mappings":";;;;;AAAA,oGAA2E;AAC3E,0DAA4D;AAC5D,6EAA8C;AAC9C,uFAA8D;AAE9D,6FAAmE;AAEnE,IAAI,MAAsB,CAAC;AAC3B,IAAI,EAAE,CAAC;AACP,IAAI,OAA2B,CAAC;AAEhC,SAAS,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,MAAM,GAAG,8BAAgB,EAAE,CAAC;IAClC,EAAE,GAAG,MAAM,uBAAM,CAAC,4BAA4B,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAClE,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;IACnB,OAAO,GAAG,IAAI,6BAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACrD,CAAC,CAAC,CAAC;AACH,QAAQ,CAAC,KAAK,IAAI,EAAE;IAChB,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"environment-service.test.js","sourceRoot":"","sources":["../../../../src/test/e2e/services/environment-service.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ const events_1 = require("../../../lib/types/events");
|
|
|
8
8
|
const feature_toggle_service_v2_1 = __importDefault(require("../../../lib/services/feature-toggle-service-v2"));
|
|
9
9
|
const test_config_1 = require("../../config/test-config");
|
|
10
10
|
const database_init_1 = __importDefault(require("../helpers/database-init"));
|
|
11
|
-
const
|
|
11
|
+
const constants_1 = require("../../../lib/util/constants");
|
|
12
12
|
let stores;
|
|
13
13
|
let db;
|
|
14
14
|
let service;
|
|
@@ -24,6 +24,8 @@ afterAll(async () => {
|
|
|
24
24
|
await db.destroy();
|
|
25
25
|
});
|
|
26
26
|
test('Should create feature toggle strategy configuration', async () => {
|
|
27
|
+
const projectId = 'default';
|
|
28
|
+
const username = 'feature-toggle';
|
|
27
29
|
const config = {
|
|
28
30
|
name: 'default',
|
|
29
31
|
constraints: [],
|
|
@@ -32,22 +34,24 @@ test('Should create feature toggle strategy configuration', async () => {
|
|
|
32
34
|
await service.createFeatureToggle('default', {
|
|
33
35
|
name: 'Demo',
|
|
34
36
|
}, 'test');
|
|
35
|
-
const createdConfig = await service.createStrategy(config,
|
|
37
|
+
const createdConfig = await service.createStrategy(config, projectId, 'Demo', username);
|
|
36
38
|
expect(createdConfig.name).toEqual('default');
|
|
37
39
|
expect(createdConfig.id).toBeDefined();
|
|
38
40
|
});
|
|
39
41
|
test('Should be able to update existing strategy configuration', async () => {
|
|
42
|
+
const projectId = 'default';
|
|
43
|
+
const username = 'existing-strategy';
|
|
40
44
|
const config = {
|
|
41
45
|
name: 'default',
|
|
42
46
|
constraints: [],
|
|
43
47
|
parameters: {},
|
|
44
48
|
};
|
|
45
|
-
await service.createFeatureToggle(
|
|
49
|
+
await service.createFeatureToggle(projectId, {
|
|
46
50
|
name: 'update-existing-strategy',
|
|
47
51
|
}, 'test');
|
|
48
|
-
const createdConfig = await service.createStrategy(config, 'default', 'update-existing-strategy');
|
|
52
|
+
const createdConfig = await service.createStrategy(config, 'default', 'update-existing-strategy', username);
|
|
49
53
|
expect(createdConfig.name).toEqual('default');
|
|
50
|
-
const updatedConfig = await service.updateStrategy(createdConfig.id, {
|
|
54
|
+
const updatedConfig = await service.updateStrategy(createdConfig.id, constants_1.DEFAULT_ENV, projectId, username, {
|
|
51
55
|
parameters: { b2b: true },
|
|
52
56
|
});
|
|
53
57
|
expect(createdConfig.id).toEqual(updatedConfig.id);
|
|
@@ -64,14 +68,16 @@ test('Should include legacy props in event log when updating strategy configurat
|
|
|
64
68
|
await service.createFeatureToggle('default', {
|
|
65
69
|
name: featureName,
|
|
66
70
|
}, userName);
|
|
67
|
-
await service.createStrategy(config, 'default', featureName);
|
|
68
|
-
await service.updateEnabled(featureName,
|
|
71
|
+
await service.createStrategy(config, 'default', featureName, userName);
|
|
72
|
+
await service.updateEnabled('default', featureName, constants_1.DEFAULT_ENV, true, userName);
|
|
69
73
|
const events = await eventService.getEventsForToggle(featureName);
|
|
70
|
-
|
|
71
|
-
expect(
|
|
72
|
-
expect(
|
|
74
|
+
const updatedEvent = events.find((e) => e.type === events_1.FEATURE_UPDATED);
|
|
75
|
+
expect(updatedEvent.type).toBe(events_1.FEATURE_UPDATED);
|
|
76
|
+
expect(updatedEvent.data.enabled).toBe(true);
|
|
77
|
+
expect(updatedEvent.data.strategies).toBeDefined();
|
|
73
78
|
});
|
|
74
79
|
test('Should be able to get strategy by id', async () => {
|
|
80
|
+
const userName = 'strategy';
|
|
75
81
|
const config = {
|
|
76
82
|
name: 'default',
|
|
77
83
|
constraints: [],
|
|
@@ -80,7 +86,7 @@ test('Should be able to get strategy by id', async () => {
|
|
|
80
86
|
await service.createFeatureToggle('default', {
|
|
81
87
|
name: 'get-strategy-by-id',
|
|
82
88
|
}, 'test');
|
|
83
|
-
const createdConfig = await service.createStrategy(config, 'default', 'Demo');
|
|
89
|
+
const createdConfig = await service.createStrategy(config, 'default', 'Demo', userName, constants_1.DEFAULT_ENV);
|
|
84
90
|
const fetchedConfig = await service.getStrategy(createdConfig.id);
|
|
85
91
|
expect(fetchedConfig).toEqual(createdConfig);
|
|
86
92
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-toggle-service-v2.e2e.test.js","sourceRoot":"","sources":["../../../../src/test/e2e/services/feature-toggle-service-v2.e2e.test.ts"],"names":[],"mappings":";;;;;AAAA,wFAA+D;AAC/D,sDAA4D;AAC5D,gHAAqF;AAErF,0DAA4D;AAC5D,6EAA8C;AAC9C,
|
|
1
|
+
{"version":3,"file":"feature-toggle-service-v2.e2e.test.js","sourceRoot":"","sources":["../../../../src/test/e2e/services/feature-toggle-service-v2.e2e.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,7 +28,7 @@ beforeAll(async () => {
|
|
|
28
28
|
accessService = new access_service_1.AccessService(stores, config);
|
|
29
29
|
featureToggleService = new feature_toggle_service_v2_1.default(stores, config);
|
|
30
30
|
projectService = new project_service_1.default(stores, config, accessService, featureToggleService);
|
|
31
|
-
projectHealthService = new project_health_service_1.default(stores, config);
|
|
31
|
+
projectHealthService = new project_health_service_1.default(stores, config, featureToggleService);
|
|
32
32
|
});
|
|
33
33
|
afterAll(async () => {
|
|
34
34
|
await db.destroy();
|
|
@@ -40,12 +40,12 @@ test('Project with no stale toggles should have 100% health rating', async () =>
|
|
|
40
40
|
description: 'Fancy',
|
|
41
41
|
};
|
|
42
42
|
const savedProject = await projectService.createProject(project, user);
|
|
43
|
-
await stores.featureToggleStore.
|
|
43
|
+
await stores.featureToggleStore.create('health-rating', {
|
|
44
44
|
name: 'health-rating-not-stale',
|
|
45
45
|
description: 'new',
|
|
46
46
|
stale: false,
|
|
47
47
|
});
|
|
48
|
-
await stores.featureToggleStore.
|
|
48
|
+
await stores.featureToggleStore.create('health-rating', {
|
|
49
49
|
name: 'health-rating-not-stale-2',
|
|
50
50
|
description: 'new too',
|
|
51
51
|
stale: false,
|
|
@@ -60,22 +60,22 @@ test('Project with two stale toggles and two non stale should have 50% health ra
|
|
|
60
60
|
description: 'Fancy',
|
|
61
61
|
};
|
|
62
62
|
const savedProject = await projectService.createProject(project, user);
|
|
63
|
-
await stores.featureToggleStore.
|
|
63
|
+
await stores.featureToggleStore.create('health-rating-2', {
|
|
64
64
|
name: 'health-rating-2-not-stale',
|
|
65
65
|
description: 'new',
|
|
66
66
|
stale: false,
|
|
67
67
|
});
|
|
68
|
-
await stores.featureToggleStore.
|
|
68
|
+
await stores.featureToggleStore.create('health-rating-2', {
|
|
69
69
|
name: 'health-rating-2-not-stale-2',
|
|
70
70
|
description: 'new too',
|
|
71
71
|
stale: false,
|
|
72
72
|
});
|
|
73
|
-
await stores.featureToggleStore.
|
|
73
|
+
await stores.featureToggleStore.create('health-rating-2', {
|
|
74
74
|
name: 'health-rating-2-stale-1',
|
|
75
75
|
description: 'stale',
|
|
76
76
|
stale: true,
|
|
77
77
|
});
|
|
78
|
-
await stores.featureToggleStore.
|
|
78
|
+
await stores.featureToggleStore.create('health-rating-2', {
|
|
79
79
|
name: 'health-rating-2-stale-2',
|
|
80
80
|
description: 'stale too',
|
|
81
81
|
stale: true,
|
|
@@ -90,19 +90,19 @@ test('Project with one non-stale, one potentially stale and one stale should hav
|
|
|
90
90
|
description: 'Fancy',
|
|
91
91
|
};
|
|
92
92
|
const savedProject = await projectService.createProject(project, user);
|
|
93
|
-
await stores.featureToggleStore.
|
|
93
|
+
await stores.featureToggleStore.create('health-rating-3', {
|
|
94
94
|
name: 'health-rating-3-not-stale',
|
|
95
95
|
description: 'new',
|
|
96
96
|
stale: false,
|
|
97
97
|
});
|
|
98
|
-
await stores.featureToggleStore.
|
|
98
|
+
await stores.featureToggleStore.create('health-rating-3', {
|
|
99
99
|
name: 'health-rating-3-potentially-stale',
|
|
100
100
|
description: 'new too',
|
|
101
101
|
type: 'release',
|
|
102
102
|
stale: false,
|
|
103
103
|
createdAt: new Date(Date.UTC(2020, 1, 1)),
|
|
104
104
|
});
|
|
105
|
-
await stores.featureToggleStore.
|
|
105
|
+
await stores.featureToggleStore.create('health-rating-3', {
|
|
106
106
|
name: 'health-rating-3-stale',
|
|
107
107
|
description: 'stale',
|
|
108
108
|
stale: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-health-service.e2e.test.js","sourceRoot":"","sources":["../../../../src/test/e2e/services/project-health-service.e2e.test.ts"],"names":[],"mappings":";;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"project-health-service.e2e.test.js","sourceRoot":"","sources":["../../../../src/test/e2e/services/project-health-service.e2e.test.ts"],"names":[],"mappings":"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"}
|