mongodb-dynamic-api 4.24.1 → 5.1.0
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/CHANGELOG.md +154 -0
- package/README.md +79 -2
- package/codemods/migrate-v5/cli.d.ts +3 -0
- package/codemods/migrate-v5/cli.js +38 -0
- package/codemods/migrate-v5/cli.js.map +1 -0
- package/codemods/migrate-v5/migrate-v5.d.ts +18 -0
- package/codemods/migrate-v5/migrate-v5.js +263 -0
- package/codemods/migrate-v5/migrate-v5.js.map +1 -0
- package/codemods/migrate-v5/removed-symbols.d.ts +7 -0
- package/codemods/migrate-v5/removed-symbols.js +122 -0
- package/codemods/migrate-v5/removed-symbols.js.map +1 -0
- package/package.json +44 -55
- package/schematics/resource/files/__name@dasherize__.entity.ts.template +3 -3
- package/schematics.tsbuildinfo +1 -1
- package/src/adapters/socket-adapter.js +5 -6
- package/src/adapters/socket-adapter.js.map +1 -1
- package/src/builders/route-decorators/auth-decorators.builder.d.ts +1 -1
- package/src/builders/route-decorators/route-decorators.builder.d.ts +2 -1
- package/src/builders/route-decorators/route-decorators.builder.js +5 -4
- package/src/builders/route-decorators/route-decorators.builder.js.map +1 -1
- package/src/decorators/entity-exists.decorator.js +2 -2
- package/src/decorators/entity-exists.decorator.js.map +1 -1
- package/src/decorators/index.d.ts +2 -5
- package/src/decorators/index.js +4 -5
- package/src/decorators/index.js.map +1 -1
- package/src/decorators/is-unique.decorator.js +2 -2
- package/src/decorators/is-unique.decorator.js.map +1 -1
- package/src/decorators/schema.decorator.d.ts +5 -0
- package/src/decorators/schema.decorator.js +15 -0
- package/src/decorators/schema.decorator.js.map +1 -0
- package/src/dtos/index.d.ts +0 -4
- package/src/dtos/index.js +0 -4
- package/src/dtos/index.js.map +1 -1
- package/src/dynamic-api.module.d.ts +1 -1
- package/src/dynamic-api.module.js +25 -20
- package/src/dynamic-api.module.js.map +1 -1
- package/src/gateways/base.gateway.js +9 -8
- package/src/gateways/base.gateway.js.map +1 -1
- package/src/gateways/dynamic-api-broadcast.gateway.d.ts +2 -2
- package/src/gateways/dynamic-api-broadcast.gateway.js +5 -5
- package/src/gateways/dynamic-api-broadcast.gateway.js.map +1 -1
- package/src/guards/base-policies.guard.d.ts +1 -1
- package/src/guards/base-policies.guard.js +5 -5
- package/src/guards/base-policies.guard.js.map +1 -1
- package/src/guards/dynamic-api-jwt-auth.guard.d.ts +1 -1
- package/src/guards/dynamic-api-jwt-auth.guard.js +7 -4
- package/src/guards/dynamic-api-jwt-auth.guard.js.map +1 -1
- package/src/guards/jwt-socket.guard.d.ts +1 -1
- package/src/guards/jwt-socket.guard.js +9 -10
- package/src/guards/jwt-socket.guard.js.map +1 -1
- package/src/helpers/event-registry.store.js +2 -2
- package/src/helpers/event-registry.store.js.map +1 -1
- package/src/helpers/index-sync.helper.js +4 -4
- package/src/helpers/index-sync.helper.js.map +1 -1
- package/src/helpers/index.d.ts +4 -21
- package/src/helpers/index.js +8 -21
- package/src/helpers/index.js.map +1 -1
- package/src/helpers/mint-token-pair.helper.js +12 -12
- package/src/helpers/mint-token-pair.helper.js.map +1 -1
- package/src/helpers/mixin-data.helper.d.ts +2 -2
- package/src/helpers/mixin-data.helper.js +2 -2
- package/src/helpers/mixin-data.helper.js.map +1 -1
- package/src/helpers/mongo-transaction.helper.js.map +1 -1
- package/src/helpers/paging-presenter-warning.helper.js +2 -2
- package/src/helpers/paging-presenter-warning.helper.js.map +1 -1
- package/src/helpers/repository.helper.js +2 -2
- package/src/helpers/repository.helper.js.map +1 -1
- package/src/helpers/route-decorators.helper.d.ts +1 -1
- package/src/helpers/schema.helper.js.map +1 -1
- package/src/helpers/socket-config.helper.d.ts +0 -1
- package/src/helpers/socket-config.helper.js +9 -19
- package/src/helpers/socket-config.helper.js.map +1 -1
- package/src/helpers/swagger-config.helper.d.ts +2 -2
- package/src/helpers/swagger-config.helper.js.map +1 -1
- package/src/helpers/validation-config.helper.js.map +1 -1
- package/src/helpers/versioning-config.helper.js.map +1 -1
- package/src/index.d.ts +0 -9
- package/src/index.js +0 -9
- package/src/index.js.map +1 -1
- package/src/interceptors/dynamic-api-cache.interceptor.d.ts +1 -1
- package/src/interceptors/dynamic-api-cache.interceptor.js +4 -0
- package/src/interceptors/dynamic-api-cache.interceptor.js.map +1 -1
- package/src/interfaces/dynamic-api-options.interface.d.ts +2 -2
- package/src/interfaces/dynamic-api-presence.interface.d.ts +1 -0
- package/src/interfaces/dynamic-api-presence.interface.js.map +1 -1
- package/src/interfaces/dynamic-api-route-config.interface.d.ts +1 -2
- package/src/interfaces/dynamic-api-route-config.interface.js.map +1 -1
- package/src/interfaces/dynamic-api-schema-options.interface.d.ts +2 -3
- package/src/interfaces/dynamic-api-service-before-save-callback.interface.d.ts +1 -15
- package/src/interfaces/dynamic-api-service-callback.interface.d.ts +1 -3
- package/src/interfaces/dynamic-api-service-provider.interface.d.ts +1 -2
- package/src/interfaces/dynamic-api-swagger-options.type.d.ts +1 -3
- package/src/interfaces/index.d.ts +4 -7
- package/src/interfaces/index.js +0 -7
- package/src/interfaces/index.js.map +1 -1
- package/src/logger/index.d.ts +1 -1
- package/src/logger/index.js +0 -15
- package/src/logger/index.js.map +1 -1
- package/src/mixins/policies-guard.mixin.d.ts +2 -1
- package/src/mixins/policies-guard.mixin.js +3 -3
- package/src/mixins/policies-guard.mixin.js.map +1 -1
- package/src/models/base-entity.model.js.map +1 -1
- package/src/models/soft-deletable-entity.model.js.map +1 -1
- package/src/modules/auth/auth-broadcast.helper.js +2 -2
- package/src/modules/auth/auth-broadcast.helper.js.map +1 -1
- package/src/modules/auth/auth.helper.d.ts +3 -3
- package/src/modules/auth/auth.helper.js +12 -11
- package/src/modules/auth/auth.helper.js.map +1 -1
- package/src/modules/auth/auth.module.js +15 -11
- package/src/modules/auth/auth.module.js.map +1 -1
- package/src/modules/auth/guards/jwt-socket-auth/jwt-socket-auth.guard.d.ts +1 -1
- package/src/modules/auth/guards/jwt-socket-auth/jwt-socket-auth.guard.js +7 -8
- package/src/modules/auth/guards/jwt-socket-auth/jwt-socket-auth.guard.js.map +1 -1
- package/src/modules/auth/guards/jwt-socket-refresh/jwt-socket-refresh.guard.js +4 -4
- package/src/modules/auth/guards/jwt-socket-refresh/jwt-socket-refresh.guard.js.map +1 -1
- package/src/modules/auth/interfaces/auth-controller.interface.d.ts +1 -1
- package/src/modules/auth/interfaces/auth-gateway.interface.d.ts +2 -1
- package/src/modules/auth/mixins/auth-controller.mixin.js +23 -17
- package/src/modules/auth/mixins/auth-controller.mixin.js.map +1 -1
- package/src/modules/auth/mixins/auth-gateway.mixin.js +8 -6
- package/src/modules/auth/mixins/auth-gateway.mixin.js.map +1 -1
- package/src/modules/auth/mixins/auth-policies-guard.mixin.d.ts +2 -1
- package/src/modules/auth/mixins/auth-policies-guard.mixin.js +1 -1
- package/src/modules/auth/mixins/auth-policies-guard.mixin.js.map +1 -1
- package/src/modules/auth/models/otp-code.model.d.ts +4 -4
- package/src/modules/auth/services/base-auth.service.d.ts +2 -1
- package/src/modules/auth/services/base-auth.service.js +8 -6
- package/src/modules/auth/services/base-auth.service.js.map +1 -1
- package/src/modules/dynamic-api-config/dynamic-api-config.module.d.ts +1 -1
- package/src/modules/dynamic-api-config/dynamic-api-config.module.js +3 -3
- package/src/modules/dynamic-api-config/dynamic-api-config.module.js.map +1 -1
- package/src/modules/health/index.d.ts +1 -2
- package/src/modules/health/index.js +3 -16
- package/src/modules/health/index.js.map +1 -1
- package/src/modules/presence/index.d.ts +1 -5
- package/src/modules/presence/index.js +3 -19
- package/src/modules/presence/index.js.map +1 -1
- package/src/modules/presence/presence.gateway.d.ts +1 -1
- package/src/modules/presence/presence.gateway.js +5 -5
- package/src/modules/presence/presence.gateway.js.map +1 -1
- package/src/modules/presence/presence.module.js +10 -9
- package/src/modules/presence/presence.module.js.map +1 -1
- package/src/routes/aggregate/aggregate-controller.mixin.d.ts +2 -2
- package/src/routes/aggregate/aggregate-controller.mixin.js +12 -8
- package/src/routes/aggregate/aggregate-controller.mixin.js.map +1 -1
- package/src/routes/aggregate/aggregate-gateway.interface.d.ts +2 -1
- package/src/routes/aggregate/aggregate-gateway.mixin.d.ts +2 -2
- package/src/routes/aggregate/aggregate-gateway.mixin.js +10 -7
- package/src/routes/aggregate/aggregate-gateway.mixin.js.map +1 -1
- package/src/routes/aggregate/aggregate.helper.d.ts +5 -4
- package/src/routes/aggregate/aggregate.helper.js +10 -10
- package/src/routes/aggregate/aggregate.helper.js.map +1 -1
- package/src/routes/aggregate/aggregate.module.d.ts +2 -2
- package/src/routes/aggregate/aggregate.module.js +4 -3
- package/src/routes/aggregate/aggregate.module.js.map +1 -1
- package/src/routes/aggregate/base-aggregate.service.d.ts +1 -1
- package/src/routes/aggregate/base-aggregate.service.js +2 -2
- package/src/routes/aggregate/base-aggregate.service.js.map +1 -1
- package/src/routes/create-many/base-create-many.service.d.ts +1 -1
- package/src/routes/create-many/base-create-many.service.js +5 -5
- package/src/routes/create-many/base-create-many.service.js.map +1 -1
- package/src/routes/create-many/create-many-controller.interface.d.ts +1 -1
- package/src/routes/create-many/create-many-controller.mixin.d.ts +2 -2
- package/src/routes/create-many/create-many-controller.mixin.js +16 -11
- package/src/routes/create-many/create-many-controller.mixin.js.map +1 -1
- package/src/routes/create-many/create-many-gateway.interface.d.ts +2 -1
- package/src/routes/create-many/create-many-gateway.mixin.d.ts +2 -2
- package/src/routes/create-many/create-many-gateway.mixin.js +10 -7
- package/src/routes/create-many/create-many-gateway.mixin.js.map +1 -1
- package/src/routes/create-many/create-many.helper.d.ts +5 -4
- package/src/routes/create-many/create-many.helper.js +13 -13
- package/src/routes/create-many/create-many.helper.js.map +1 -1
- package/src/routes/create-many/create-many.module.js +6 -5
- package/src/routes/create-many/create-many.module.js.map +1 -1
- package/src/routes/create-one/base-create-one.service.d.ts +1 -1
- package/src/routes/create-one/base-create-one.service.js +5 -5
- package/src/routes/create-one/base-create-one.service.js.map +1 -1
- package/src/routes/create-one/create-one-controller.interface.d.ts +1 -1
- package/src/routes/create-one/create-one-controller.mixin.d.ts +2 -2
- package/src/routes/create-one/create-one-controller.mixin.js +14 -10
- package/src/routes/create-one/create-one-controller.mixin.js.map +1 -1
- package/src/routes/create-one/create-one-gateway.interface.d.ts +2 -1
- package/src/routes/create-one/create-one-gateway.mixin.d.ts +2 -2
- package/src/routes/create-one/create-one-gateway.mixin.js +10 -7
- package/src/routes/create-one/create-one-gateway.mixin.js.map +1 -1
- package/src/routes/create-one/create-one.helper.d.ts +5 -4
- package/src/routes/create-one/create-one.helper.js +13 -13
- package/src/routes/create-one/create-one.helper.js.map +1 -1
- package/src/routes/create-one/create-one.module.js +6 -5
- package/src/routes/create-one/create-one.module.js.map +1 -1
- package/src/routes/custom/create-custom-route-controller.js +15 -13
- package/src/routes/custom/create-custom-route-controller.js.map +1 -1
- package/src/routes/custom/create-custom-route-gateway.js +12 -10
- package/src/routes/custom/create-custom-route-gateway.js.map +1 -1
- package/src/routes/custom/custom-route-callback.service.d.ts +1 -1
- package/src/routes/custom/custom-route-callback.service.js +2 -2
- package/src/routes/custom/custom-route-callback.service.js.map +1 -1
- package/src/routes/delete-many/base-delete-many.service.d.ts +2 -2
- package/src/routes/delete-many/base-delete-many.service.js +5 -5
- package/src/routes/delete-many/base-delete-many.service.js.map +1 -1
- package/src/routes/delete-many/delete-many-controller.interface.d.ts +2 -2
- package/src/routes/delete-many/delete-many-controller.mixin.d.ts +2 -2
- package/src/routes/delete-many/delete-many-controller.mixin.js +14 -10
- package/src/routes/delete-many/delete-many-controller.mixin.js.map +1 -1
- package/src/routes/delete-many/delete-many-gateway.interface.d.ts +3 -2
- package/src/routes/delete-many/delete-many-gateway.mixin.d.ts +2 -2
- package/src/routes/delete-many/delete-many-gateway.mixin.js +10 -7
- package/src/routes/delete-many/delete-many-gateway.mixin.js.map +1 -1
- package/src/routes/delete-many/delete-many.helper.d.ts +5 -4
- package/src/routes/delete-many/delete-many.helper.js +13 -13
- package/src/routes/delete-many/delete-many.helper.js.map +1 -1
- package/src/routes/delete-many/delete-many.module.js +6 -5
- package/src/routes/delete-many/delete-many.module.js.map +1 -1
- package/src/routes/delete-one/base-delete-one.service.d.ts +2 -2
- package/src/routes/delete-one/base-delete-one.service.js +5 -5
- package/src/routes/delete-one/base-delete-one.service.js.map +1 -1
- package/src/routes/delete-one/delete-one-controller.interface.d.ts +1 -1
- package/src/routes/delete-one/delete-one-controller.mixin.d.ts +2 -2
- package/src/routes/delete-one/delete-one-controller.mixin.js +14 -10
- package/src/routes/delete-one/delete-one-controller.mixin.js.map +1 -1
- package/src/routes/delete-one/delete-one-gateway.interface.d.ts +3 -2
- package/src/routes/delete-one/delete-one-gateway.mixin.d.ts +2 -2
- package/src/routes/delete-one/delete-one-gateway.mixin.js +10 -7
- package/src/routes/delete-one/delete-one-gateway.mixin.js.map +1 -1
- package/src/routes/delete-one/delete-one.helper.d.ts +5 -4
- package/src/routes/delete-one/delete-one.helper.js +13 -13
- package/src/routes/delete-one/delete-one.helper.js.map +1 -1
- package/src/routes/delete-one/delete-one.module.js +6 -5
- package/src/routes/delete-one/delete-one.module.js.map +1 -1
- package/src/routes/duplicate-many/base-duplicate-many.service.d.ts +1 -1
- package/src/routes/duplicate-many/base-duplicate-many.service.js +4 -4
- package/src/routes/duplicate-many/base-duplicate-many.service.js.map +1 -1
- package/src/routes/duplicate-many/duplicate-many-controller.interface.d.ts +1 -1
- package/src/routes/duplicate-many/duplicate-many-controller.mixin.d.ts +2 -2
- package/src/routes/duplicate-many/duplicate-many-controller.mixin.js +16 -11
- package/src/routes/duplicate-many/duplicate-many-controller.mixin.js.map +1 -1
- package/src/routes/duplicate-many/duplicate-many-gateway.interface.d.ts +3 -2
- package/src/routes/duplicate-many/duplicate-many-gateway.mixin.d.ts +2 -2
- package/src/routes/duplicate-many/duplicate-many-gateway.mixin.js +10 -7
- package/src/routes/duplicate-many/duplicate-many-gateway.mixin.js.map +1 -1
- package/src/routes/duplicate-many/duplicate-many.helper.d.ts +5 -4
- package/src/routes/duplicate-many/duplicate-many.helper.js +13 -13
- package/src/routes/duplicate-many/duplicate-many.helper.js.map +1 -1
- package/src/routes/duplicate-many/duplicate-many.module.js +6 -5
- package/src/routes/duplicate-many/duplicate-many.module.js.map +1 -1
- package/src/routes/duplicate-one/base-duplicate-one.service.d.ts +1 -1
- package/src/routes/duplicate-one/base-duplicate-one.service.js +4 -4
- package/src/routes/duplicate-one/base-duplicate-one.service.js.map +1 -1
- package/src/routes/duplicate-one/duplicate-one-controller.interface.d.ts +1 -1
- package/src/routes/duplicate-one/duplicate-one-controller.mixin.d.ts +2 -2
- package/src/routes/duplicate-one/duplicate-one-controller.mixin.js +18 -13
- package/src/routes/duplicate-one/duplicate-one-controller.mixin.js.map +1 -1
- package/src/routes/duplicate-one/duplicate-one-gateway.interface.d.ts +3 -2
- package/src/routes/duplicate-one/duplicate-one-gateway.mixin.d.ts +2 -2
- package/src/routes/duplicate-one/duplicate-one-gateway.mixin.js +10 -7
- package/src/routes/duplicate-one/duplicate-one-gateway.mixin.js.map +1 -1
- package/src/routes/duplicate-one/duplicate-one.helper.d.ts +5 -4
- package/src/routes/duplicate-one/duplicate-one.helper.js +13 -13
- package/src/routes/duplicate-one/duplicate-one.helper.js.map +1 -1
- package/src/routes/duplicate-one/duplicate-one.module.js +6 -5
- package/src/routes/duplicate-one/duplicate-one.module.js.map +1 -1
- package/src/routes/get-many/base-get-many.service.d.ts +1 -1
- package/src/routes/get-many/base-get-many.service.js +2 -2
- package/src/routes/get-many/base-get-many.service.js.map +1 -1
- package/src/routes/get-many/get-many-controller.mixin.d.ts +2 -2
- package/src/routes/get-many/get-many-controller.mixin.js +13 -10
- package/src/routes/get-many/get-many-controller.mixin.js.map +1 -1
- package/src/routes/get-many/get-many-gateway.interface.d.ts +2 -1
- package/src/routes/get-many/get-many-gateway.mixin.d.ts +2 -2
- package/src/routes/get-many/get-many-gateway.mixin.js +10 -8
- package/src/routes/get-many/get-many-gateway.mixin.js.map +1 -1
- package/src/routes/get-many/get-many.helper.d.ts +5 -4
- package/src/routes/get-many/get-many.helper.js +10 -10
- package/src/routes/get-many/get-many.helper.js.map +1 -1
- package/src/routes/get-many/get-many.module.js +4 -3
- package/src/routes/get-many/get-many.module.js.map +1 -1
- package/src/routes/get-one/base-get-one.service.d.ts +1 -1
- package/src/routes/get-one/base-get-one.service.js +2 -2
- package/src/routes/get-one/base-get-one.service.js.map +1 -1
- package/src/routes/get-one/get-one-controller.mixin.d.ts +2 -2
- package/src/routes/get-one/get-one-controller.mixin.js +11 -8
- package/src/routes/get-one/get-one-controller.mixin.js.map +1 -1
- package/src/routes/get-one/get-one-gateway.interface.d.ts +3 -2
- package/src/routes/get-one/get-one-gateway.mixin.d.ts +2 -2
- package/src/routes/get-one/get-one-gateway.mixin.js +9 -7
- package/src/routes/get-one/get-one-gateway.mixin.js.map +1 -1
- package/src/routes/get-one/get-one.helper.d.ts +5 -4
- package/src/routes/get-one/get-one.helper.js +10 -10
- package/src/routes/get-one/get-one.helper.js.map +1 -1
- package/src/routes/get-one/get-one.module.js +4 -3
- package/src/routes/get-one/get-one.module.js.map +1 -1
- package/src/routes/replace-one/base-replace-one.service.d.ts +1 -1
- package/src/routes/replace-one/base-replace-one.service.js +5 -5
- package/src/routes/replace-one/base-replace-one.service.js.map +1 -1
- package/src/routes/replace-one/replace-one-controller.interface.d.ts +1 -1
- package/src/routes/replace-one/replace-one-controller.mixin.d.ts +2 -2
- package/src/routes/replace-one/replace-one-controller.mixin.js +16 -12
- package/src/routes/replace-one/replace-one-controller.mixin.js.map +1 -1
- package/src/routes/replace-one/replace-one-gateway.interface.d.ts +3 -2
- package/src/routes/replace-one/replace-one-gateway.mixin.d.ts +2 -2
- package/src/routes/replace-one/replace-one-gateway.mixin.js +8 -6
- package/src/routes/replace-one/replace-one-gateway.mixin.js.map +1 -1
- package/src/routes/replace-one/replace-one.helper.d.ts +5 -4
- package/src/routes/replace-one/replace-one.helper.js +13 -13
- package/src/routes/replace-one/replace-one.helper.js.map +1 -1
- package/src/routes/replace-one/replace-one.module.js +6 -5
- package/src/routes/replace-one/replace-one.module.js.map +1 -1
- package/src/routes/update-many/base-update-many.service.d.ts +1 -1
- package/src/routes/update-many/base-update-many.service.js +4 -4
- package/src/routes/update-many/base-update-many.service.js.map +1 -1
- package/src/routes/update-many/update-many-controller.interface.d.ts +1 -1
- package/src/routes/update-many/update-many-controller.mixin.d.ts +2 -2
- package/src/routes/update-many/update-many-controller.mixin.js +16 -11
- package/src/routes/update-many/update-many-controller.mixin.js.map +1 -1
- package/src/routes/update-many/update-many-gateway.interface.d.ts +3 -2
- package/src/routes/update-many/update-many-gateway.mixin.d.ts +2 -2
- package/src/routes/update-many/update-many-gateway.mixin.js +10 -7
- package/src/routes/update-many/update-many-gateway.mixin.js.map +1 -1
- package/src/routes/update-many/update-many.helper.d.ts +5 -4
- package/src/routes/update-many/update-many.helper.js +13 -13
- package/src/routes/update-many/update-many.helper.js.map +1 -1
- package/src/routes/update-many/update-many.module.js +6 -5
- package/src/routes/update-many/update-many.module.js.map +1 -1
- package/src/routes/update-one/base-update-one.service.d.ts +1 -1
- package/src/routes/update-one/base-update-one.service.js +5 -5
- package/src/routes/update-one/base-update-one.service.js.map +1 -1
- package/src/routes/update-one/update-one-controller.interface.d.ts +1 -1
- package/src/routes/update-one/update-one-controller.mixin.d.ts +2 -2
- package/src/routes/update-one/update-one-controller.mixin.js +18 -13
- package/src/routes/update-one/update-one-controller.mixin.js.map +1 -1
- package/src/routes/update-one/update-one-gateway.interface.d.ts +3 -2
- package/src/routes/update-one/update-one-gateway.mixin.d.ts +2 -2
- package/src/routes/update-one/update-one-gateway.mixin.js +8 -6
- package/src/routes/update-one/update-one-gateway.mixin.js.map +1 -1
- package/src/routes/update-one/update-one.helper.d.ts +5 -4
- package/src/routes/update-one/update-one.helper.js +13 -13
- package/src/routes/update-one/update-one.helper.js.map +1 -1
- package/src/routes/update-one/update-one.module.js +6 -5
- package/src/routes/update-one/update-one.module.js.map +1 -1
- package/src/services/base/base.service.js +3 -4
- package/src/services/base/base.service.js.map +1 -1
- package/src/services/bcrypt/bcrypt.service.js.map +1 -1
- package/src/services/dynamic-api-broadcast/dynamic-api-broadcast.service.js +4 -4
- package/src/services/dynamic-api-broadcast/dynamic-api-broadcast.service.js.map +1 -1
- package/src/services/dynamic-api-cache/dynamic-api-cache.service.js +2 -2
- package/src/services/dynamic-api-cache/dynamic-api-cache.service.js.map +1 -1
- package/src/services/dynamic-api-entity/dynamic-api-entity.service.d.ts +6 -0
- package/src/services/dynamic-api-entity/dynamic-api-entity.service.js +11 -0
- package/src/services/dynamic-api-entity/dynamic-api-entity.service.js.map +1 -0
- package/src/services/dynamic-api-global-state/dynamic-api-global-state.service.d.ts +6 -2
- package/src/services/index.d.ts +1 -2
- package/src/services/index.js +1 -2
- package/src/services/index.js.map +1 -1
- package/src/testing/create-dynamic-api-testing-app.js +1 -1
- package/src/testing/create-dynamic-api-testing-app.js.map +1 -1
- package/src/utils/index.d.ts +0 -1
- package/src/utils/index.js +0 -1
- package/src/utils/index.js.map +1 -1
- package/src/version.json +1 -1
- package/test/e2e.setup.d.ts +3 -3
- package/test/e2e.setup.js +8 -7
- package/test/e2e.setup.js.map +1 -1
- package/test/for-feature/ability-predicate-filter.e2e-spec.js +20 -20
- package/test/for-feature/ability-predicate-filter.e2e-spec.js.map +1 -1
- package/test/for-feature/ability-predicates.e2e-spec.js +28 -27
- package/test/for-feature/ability-predicates.e2e-spec.js.map +1 -1
- package/test/for-feature/after-save-callback-reliability.e2e-spec.js +35 -34
- package/test/for-feature/after-save-callback-reliability.e2e-spec.js.map +1 -1
- package/test/for-feature/aggregate-ability-predicate-paging.e2e-spec.js +20 -19
- package/test/for-feature/aggregate-ability-predicate-paging.e2e-spec.js.map +1 -1
- package/test/for-feature/aggregate-paging-without-from-aggregate.e2e-spec.js +11 -10
- package/test/for-feature/aggregate-paging-without-from-aggregate.e2e-spec.js.map +1 -1
- package/test/for-feature/aggregate-swagger-paginated-response.e2e-spec.js +18 -17
- package/test/for-feature/aggregate-swagger-paginated-response.e2e-spec.js.map +1 -1
- package/test/for-feature/audit-log.e2e-spec.js +26 -25
- package/test/for-feature/audit-log.e2e-spec.js.map +1 -1
- package/test/for-feature/base-entity.e2e-spec.js +126 -125
- package/test/for-feature/base-entity.e2e-spec.js.map +1 -1
- package/test/for-feature/broadcast-event-registry.e2e-spec.js +20 -19
- package/test/for-feature/broadcast-event-registry.e2e-spec.js.map +1 -1
- package/test/for-feature/cache-identity-key.e2e-spec.js +22 -21
- package/test/for-feature/cache-identity-key.e2e-spec.js.map +1 -1
- package/test/for-feature/cache-scoped-invalidation.e2e-spec.js +33 -32
- package/test/for-feature/cache-scoped-invalidation.e2e-spec.js.map +1 -1
- package/test/for-feature/callbacks-user.e2e-spec.js +159 -158
- package/test/for-feature/callbacks-user.e2e-spec.js.map +1 -1
- package/test/for-feature/cascade-and-before-delete.e2e-spec.js +47 -46
- package/test/for-feature/cascade-and-before-delete.e2e-spec.js.map +1 -1
- package/test/for-feature/cascade-transaction-atomicity.e2e-spec.js +17 -16
- package/test/for-feature/cascade-transaction-atomicity.e2e-spec.js.map +1 -1
- package/test/for-feature/custom-route-auth-ability-predicate.e2e-spec.js +17 -16
- package/test/for-feature/custom-route-auth-ability-predicate.e2e-spec.js.map +1 -1
- package/test/for-feature/custom-route-inject.e2e-spec.js +9 -8
- package/test/for-feature/custom-route-inject.e2e-spec.js.map +1 -1
- package/test/for-feature/custom-route-params-openapi.e2e-spec.js +10 -9
- package/test/for-feature/custom-route-params-openapi.e2e-spec.js.map +1 -1
- package/test/for-feature/custom-route-target-param.e2e-spec.js +14 -13
- package/test/for-feature/custom-route-target-param.e2e-spec.js.map +1 -1
- package/test/for-feature/custom-routes.e2e-spec.js +38 -38
- package/test/for-feature/custom-routes.e2e-spec.js.map +1 -1
- package/test/for-feature/db-aware-validators.e2e-spec.js +40 -39
- package/test/for-feature/db-aware-validators.e2e-spec.js.map +1 -1
- package/test/for-feature/derived-fields-protected-from-user.e2e-spec.js +39 -38
- package/test/for-feature/derived-fields-protected-from-user.e2e-spec.js.map +1 -1
- package/test/for-feature/derived-fields-raw-write-recompute.e2e-spec.js +25 -24
- package/test/for-feature/derived-fields-raw-write-recompute.e2e-spec.js.map +1 -1
- package/test/for-feature/exclude-from-response.e2e-spec.js +21 -20
- package/test/for-feature/exclude-from-response.e2e-spec.js.map +1 -1
- package/test/for-feature/http-broadcast.e2e-spec.js +62 -61
- package/test/for-feature/http-broadcast.e2e-spec.js.map +1 -1
- package/test/for-feature/index-sync.e2e-spec.js +39 -28
- package/test/for-feature/index-sync.e2e-spec.js.map +1 -1
- package/test/for-feature/paging-query-helper.e2e-spec.js +21 -20
- package/test/for-feature/paging-query-helper.e2e-spec.js.map +1 -1
- package/test/for-feature/populate.e2e-spec.js +18 -17
- package/test/for-feature/populate.e2e-spec.js.map +1 -1
- package/test/for-feature/presence.e2e-spec.js +40 -18
- package/test/for-feature/presence.e2e-spec.js.map +1 -1
- package/test/for-feature/raw-update-callback-methods.e2e-spec.js +49 -48
- package/test/for-feature/raw-update-callback-methods.e2e-spec.js.map +1 -1
- package/test/for-feature/room-broadcast.e2e-spec.js +61 -60
- package/test/for-feature/room-broadcast.e2e-spec.js.map +1 -1
- package/test/for-feature/soft-deletable-entity.e2e-spec.js +136 -135
- package/test/for-feature/soft-deletable-entity.e2e-spec.js.map +1 -1
- package/test/for-feature/websockets.e2e-spec.js +54 -53
- package/test/for-feature/websockets.e2e-spec.js.map +1 -1
- package/test/for-root/auth-api-basic.e2e-spec.js +94 -93
- package/test/for-root/auth-api-basic.e2e-spec.js.map +1 -1
- package/test/for-root/auth-api-broadcast.e2e-spec.js +24 -23
- package/test/for-root/auth-api-broadcast.e2e-spec.js.map +1 -1
- package/test/for-root/auth-api-login.e2e-spec.js +99 -97
- package/test/for-root/auth-api-login.e2e-spec.js.map +1 -1
- package/test/for-root/auth-api-logout.e2e-spec.js +18 -17
- package/test/for-root/auth-api-logout.e2e-spec.js.map +1 -1
- package/test/for-root/auth-api-mint-token-pair.e2e-spec.js +17 -16
- package/test/for-root/auth-api-mint-token-pair.e2e-spec.js.map +1 -1
- package/test/for-root/auth-api-passwordless.e2e-spec.js +37 -36
- package/test/for-root/auth-api-passwordless.e2e-spec.js.map +1 -1
- package/test/for-root/auth-api-rate-limit.e2e-spec.js +14 -13
- package/test/for-root/auth-api-rate-limit.e2e-spec.js.map +1 -1
- package/test/for-root/auth-api-refresh-token-cookie.e2e-spec.js +27 -26
- package/test/for-root/auth-api-refresh-token-cookie.e2e-spec.js.map +1 -1
- package/test/for-root/auth-api-refresh-token.e2e-spec.js +93 -54
- package/test/for-root/auth-api-refresh-token.e2e-spec.js.map +1 -1
- package/test/for-root/auth-api-register.e2e-spec.js +29 -27
- package/test/for-root/auth-api-register.e2e-spec.js.map +1 -1
- package/test/for-root/auth-api-reset-password.e2e-spec.js +50 -48
- package/test/for-root/auth-api-reset-password.e2e-spec.js.map +1 -1
- package/test/for-root/auth-api-update-account-derived-field.e2e-spec.js +9 -8
- package/test/for-root/auth-api-update-account-derived-field.e2e-spec.js.map +1 -1
- package/test/for-root/auth-api-update-account.e2e-spec.js +38 -37
- package/test/for-root/auth-api-update-account.e2e-spec.js.map +1 -1
- package/test/for-root/health-check.e2e-spec.js +21 -20
- package/test/for-root/health-check.e2e-spec.js.map +1 -1
- package/test/for-root/initialization.e2e-spec.js +10 -9
- package/test/for-root/initialization.e2e-spec.js.map +1 -1
- package/test/for-root/websockets-auth-basic.e2e-spec.js +115 -114
- package/test/for-root/websockets-auth-basic.e2e-spec.js.map +1 -1
- package/test/for-root/websockets-auth-broadcast.e2e-spec.js +26 -25
- package/test/for-root/websockets-auth-broadcast.e2e-spec.js.map +1 -1
- package/test/for-root/websockets-auth-login.e2e-spec.js +40 -38
- package/test/for-root/websockets-auth-login.e2e-spec.js.map +1 -1
- package/test/for-root/websockets-auth-refresh-token.e2e-spec.js +22 -21
- package/test/for-root/websockets-auth-refresh-token.e2e-spec.js.map +1 -1
- package/test/for-root/websockets-auth-register.e2e-spec.js +36 -34
- package/test/for-root/websockets-auth-register.e2e-spec.js.map +1 -1
- package/test/for-root/websockets-auth-reset-password.e2e-spec.js +56 -54
- package/test/for-root/websockets-auth-reset-password.e2e-spec.js.map +1 -1
- package/test/helpers/create-mock.helper.d.ts +12 -0
- package/test/helpers/create-mock.helper.js +58 -0
- package/test/helpers/create-mock.helper.js.map +1 -0
- package/test/helpers/index.d.ts +1 -0
- package/test/helpers/index.js +18 -0
- package/test/helpers/index.js.map +1 -0
- package/test/helpers/register-ts-require-hook.d.ts +1 -0
- package/test/helpers/register-ts-require-hook.js +20 -0
- package/test/helpers/register-ts-require-hook.js.map +1 -0
- package/test/shared/entities/refresh-token-user.factory.d.ts +1 -0
- package/test/shared/entities/refresh-token-user.factory.js +4 -0
- package/test/shared/entities/refresh-token-user.factory.js.map +1 -1
- package/test/testing/create-dynamic-api-testing-app.e2e-spec.js +17 -15
- package/test/testing/create-dynamic-api-testing-app.e2e-spec.js.map +1 -1
- package/test/utils.d.ts +5 -1
- package/test/utils.js +2 -2
- package/test/utils.js.map +1 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/src/decorators/schema-options.decorator.d.ts +0 -5
- package/src/decorators/schema-options.decorator.js +0 -14
- package/src/decorators/schema-options.decorator.js.map +0 -1
- package/src/utils/deep-patial.d.ts +0 -1
- package/src/utils/deep-patial.js +0 -3
- package/src/utils/deep-patial.js.map +0 -1
|
@@ -9,6 +9,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const vitest_1 = require("vitest");
|
|
12
13
|
const mongoose_1 = require("@nestjs/mongoose");
|
|
13
14
|
const mongoose_2 = require("mongoose");
|
|
14
15
|
const src_1 = require("../../src");
|
|
@@ -16,11 +17,11 @@ const e2e_setup_1 = require("../e2e.setup");
|
|
|
16
17
|
require("dotenv/config");
|
|
17
18
|
const utils_1 = require("../utils");
|
|
18
19
|
const shared_1 = require("../shared");
|
|
19
|
-
describe('DynamicApiModule forFeature - afterSaveCallback reliability (e2e)', () => {
|
|
20
|
-
beforeEach(() => {
|
|
20
|
+
(0, vitest_1.describe)('DynamicApiModule forFeature - afterSaveCallback reliability (e2e)', () => {
|
|
21
|
+
(0, vitest_1.beforeEach)(() => {
|
|
21
22
|
src_1.DynamicApiModule.state['resetState']();
|
|
22
23
|
});
|
|
23
|
-
afterEach(async () => {
|
|
24
|
+
(0, vitest_1.afterEach)(async () => {
|
|
24
25
|
await (0, e2e_setup_1.closeTestingApp)(mongoose_2.default.connections);
|
|
25
26
|
});
|
|
26
27
|
let ReliabilityItemEntity = class ReliabilityItemEntity extends src_1.BaseEntity {
|
|
@@ -35,10 +36,10 @@ describe('DynamicApiModule forFeature - afterSaveCallback reliability (e2e)', ()
|
|
|
35
36
|
const throwingCallback = async () => {
|
|
36
37
|
throw new Error('afterSaveCallback boom');
|
|
37
38
|
};
|
|
38
|
-
describe('single-entity and batch routes never corrupt the response', () => {
|
|
39
|
+
(0, vitest_1.describe)('single-entity and batch routes never corrupt the response', () => {
|
|
39
40
|
let existingItem;
|
|
40
41
|
let secondItem;
|
|
41
|
-
beforeEach(async () => {
|
|
42
|
+
(0, vitest_1.beforeEach)(async () => {
|
|
42
43
|
const fixtures = async (_) => {
|
|
43
44
|
const model = await (0, utils_1.getModelFromEntity)(ReliabilityItemEntity);
|
|
44
45
|
const [a, b] = await model.insertMany([{ title: 'first' }, { title: 'second' }]);
|
|
@@ -57,38 +58,38 @@ describe('DynamicApiModule forFeature - afterSaveCallback reliability (e2e)', ()
|
|
|
57
58
|
],
|
|
58
59
|
}, undefined, fixtures);
|
|
59
60
|
});
|
|
60
|
-
it('[CreateOne] should return 201 with the created entity despite the callback failing', async () => {
|
|
61
|
+
(0, vitest_1.it)('[CreateOne] should return 201 with the created entity despite the callback failing', async () => {
|
|
61
62
|
const { status, body } = await e2e_setup_1.server.post('/reliability-items', { title: 'created' });
|
|
62
|
-
expect(status).toBe(201);
|
|
63
|
-
expect(body).toMatchObject({ title: 'created' });
|
|
63
|
+
(0, vitest_1.expect)(status).toBe(201);
|
|
64
|
+
(0, vitest_1.expect)(body).toMatchObject({ title: 'created' });
|
|
64
65
|
const model = await (0, utils_1.getModelFromEntity)(ReliabilityItemEntity);
|
|
65
66
|
const persisted = await model.findOne({ title: 'created' }).lean();
|
|
66
|
-
expect(persisted).not.toBeNull();
|
|
67
|
+
(0, vitest_1.expect)(persisted).not.toBeNull();
|
|
67
68
|
});
|
|
68
|
-
it('[CreateMany] should return 201 with all created entities despite the callback failing', async () => {
|
|
69
|
+
(0, vitest_1.it)('[CreateMany] should return 201 with all created entities despite the callback failing', async () => {
|
|
69
70
|
const { status, body } = await e2e_setup_1.server.post('/reliability-items/many', {
|
|
70
71
|
list: [{ title: 'batch-1' }, { title: 'batch-2' }],
|
|
71
72
|
});
|
|
72
|
-
expect(status).toBe(201);
|
|
73
|
-
expect(body).toHaveLength(2);
|
|
74
|
-
expect(body.map((i) => i.title).sort()).toEqual(['batch-1', 'batch-2']);
|
|
73
|
+
(0, vitest_1.expect)(status).toBe(201);
|
|
74
|
+
(0, vitest_1.expect)(body).toHaveLength(2);
|
|
75
|
+
(0, vitest_1.expect)(body.map((i) => i.title).sort()).toEqual(['batch-1', 'batch-2']);
|
|
75
76
|
});
|
|
76
|
-
it('[DeleteOne] should return the real deletedCount, not 0, despite the callback failing', async () => {
|
|
77
|
+
(0, vitest_1.it)('[DeleteOne] should return the real deletedCount, not 0, despite the callback failing', async () => {
|
|
77
78
|
const { status, body } = await e2e_setup_1.server.delete(`/reliability-items/${existingItem.id}`);
|
|
78
|
-
expect(status).toBe(200);
|
|
79
|
-
expect(body).toEqual({ deletedCount: 1 });
|
|
79
|
+
(0, vitest_1.expect)(status).toBe(200);
|
|
80
|
+
(0, vitest_1.expect)(body).toEqual({ deletedCount: 1 });
|
|
80
81
|
const model = await (0, utils_1.getModelFromEntity)(ReliabilityItemEntity);
|
|
81
|
-
expect(await model.findById(existingItem.id).lean()).toBeNull();
|
|
82
|
+
(0, vitest_1.expect)(await model.findById(existingItem.id).lean()).toBeNull();
|
|
82
83
|
});
|
|
83
|
-
it('[DeleteMany] should return the real deletedCount, not 0, despite the callback failing for every document', async () => {
|
|
84
|
+
(0, vitest_1.it)('[DeleteMany] should return the real deletedCount, not 0, despite the callback failing for every document', async () => {
|
|
84
85
|
const { status, body } = await e2e_setup_1.server.delete('/reliability-items', {
|
|
85
86
|
query: { ids: [existingItem.id, secondItem.id] },
|
|
86
87
|
});
|
|
87
|
-
expect(status).toBe(200);
|
|
88
|
-
expect(body).toEqual({ deletedCount: 2 });
|
|
88
|
+
(0, vitest_1.expect)(status).toBe(200);
|
|
89
|
+
(0, vitest_1.expect)(body).toEqual({ deletedCount: 2 });
|
|
89
90
|
});
|
|
90
91
|
});
|
|
91
|
-
describe('callbackRetry', () => {
|
|
92
|
+
(0, vitest_1.describe)('callbackRetry', () => {
|
|
92
93
|
let attempts;
|
|
93
94
|
const flakyCallback = async () => {
|
|
94
95
|
attempts += 1;
|
|
@@ -96,7 +97,7 @@ describe('DynamicApiModule forFeature - afterSaveCallback reliability (e2e)', ()
|
|
|
96
97
|
throw new Error('transient');
|
|
97
98
|
}
|
|
98
99
|
};
|
|
99
|
-
beforeEach(async () => {
|
|
100
|
+
(0, vitest_1.beforeEach)(async () => {
|
|
100
101
|
attempts = 0;
|
|
101
102
|
await (0, shared_1.initApp)({
|
|
102
103
|
entity: ReliabilityItemEntity,
|
|
@@ -106,16 +107,16 @@ describe('DynamicApiModule forFeature - afterSaveCallback reliability (e2e)', ()
|
|
|
106
107
|
],
|
|
107
108
|
});
|
|
108
109
|
});
|
|
109
|
-
it('should retry a failing callback and succeed on the second attempt', async () => {
|
|
110
|
+
(0, vitest_1.it)('should retry a failing callback and succeed on the second attempt', async () => {
|
|
110
111
|
const { status, body } = await e2e_setup_1.server.post('/reliability-retry-items', { title: 'retried' });
|
|
111
|
-
expect(status).toBe(201);
|
|
112
|
-
expect(body).toMatchObject({ title: 'retried' });
|
|
113
|
-
expect(attempts).toBe(2);
|
|
112
|
+
(0, vitest_1.expect)(status).toBe(201);
|
|
113
|
+
(0, vitest_1.expect)(body).toMatchObject({ title: 'retried' });
|
|
114
|
+
(0, vitest_1.expect)(attempts).toBe(2);
|
|
114
115
|
});
|
|
115
116
|
});
|
|
116
|
-
describe('onAfterSaveError global hook', () => {
|
|
117
|
-
const onAfterSaveError =
|
|
118
|
-
beforeEach(async () => {
|
|
117
|
+
(0, vitest_1.describe)('onAfterSaveError global hook', () => {
|
|
118
|
+
const onAfterSaveError = vitest_1.vi.fn();
|
|
119
|
+
(0, vitest_1.beforeEach)(async () => {
|
|
119
120
|
onAfterSaveError.mockClear();
|
|
120
121
|
await (0, shared_1.initApp)({
|
|
121
122
|
entity: ReliabilityItemEntity,
|
|
@@ -125,13 +126,13 @@ describe('DynamicApiModule forFeature - afterSaveCallback reliability (e2e)', ()
|
|
|
125
126
|
],
|
|
126
127
|
}, { onAfterSaveError });
|
|
127
128
|
});
|
|
128
|
-
it('should invoke the global hook with the error and context when callback fails', async () => {
|
|
129
|
+
(0, vitest_1.it)('should invoke the global hook with the error and context when callback fails', async () => {
|
|
129
130
|
const { status } = await e2e_setup_1.server.post('/reliability-hook-items', { title: 'hooked' });
|
|
130
|
-
expect(status).toBe(201);
|
|
131
|
-
expect(onAfterSaveError).toHaveBeenCalledTimes(1);
|
|
132
|
-
expect(onAfterSaveError).toHaveBeenCalledWith(expect.any(Error), expect.objectContaining({
|
|
131
|
+
(0, vitest_1.expect)(status).toBe(201);
|
|
132
|
+
(0, vitest_1.expect)(onAfterSaveError).toHaveBeenCalledTimes(1);
|
|
133
|
+
(0, vitest_1.expect)(onAfterSaveError).toHaveBeenCalledWith(vitest_1.expect.any(Error), vitest_1.expect.objectContaining({
|
|
133
134
|
entityName: 'ReliabilityItemEntity',
|
|
134
|
-
entity: expect.objectContaining({ title: 'hooked' }),
|
|
135
|
+
entity: vitest_1.expect.objectContaining({ title: 'hooked' }),
|
|
135
136
|
}));
|
|
136
137
|
});
|
|
137
138
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"after-save-callback-reliability.e2e-spec.js","sourceRoot":"","sources":["../../../libs/dynamic-api/test/for-feature/after-save-callback-reliability.e2e-spec.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,+CAAgD;AAChD,uCAAgD;AAChD,mCAA4E;AAC5E,4CAAuD;AACvD,yBAAuB;AACvB,oCAA8C;AAC9C,sCAAoC;AAQpC,
|
|
1
|
+
{"version":3,"file":"after-save-callback-reliability.e2e-spec.js","sourceRoot":"","sources":["../../../libs/dynamic-api/test/for-feature/after-save-callback-reliability.e2e-spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const vitest_1 = require("vitest");
|
|
12
13
|
const mongoose_1 = require("@nestjs/mongoose");
|
|
13
14
|
const mongodb_pipeline_builder_1 = require("mongodb-pipeline-builder");
|
|
14
15
|
const mongoose_2 = require("mongoose");
|
|
@@ -17,11 +18,11 @@ const e2e_setup_1 = require("../e2e.setup");
|
|
|
17
18
|
require("dotenv/config");
|
|
18
19
|
const utils_1 = require("../utils");
|
|
19
20
|
const shared_1 = require("../shared");
|
|
20
|
-
describe('DynamicApiModule forFeature - Aggregate abilityPredicate + Paging (e2e)', () => {
|
|
21
|
-
beforeEach(() => {
|
|
21
|
+
(0, vitest_1.describe)('DynamicApiModule forFeature - Aggregate abilityPredicate + Paging (e2e)', () => {
|
|
22
|
+
(0, vitest_1.beforeEach)(() => {
|
|
22
23
|
src_1.DynamicApiModule.state['resetState']();
|
|
23
24
|
});
|
|
24
|
-
afterEach(async () => {
|
|
25
|
+
(0, vitest_1.afterEach)(async () => {
|
|
25
26
|
await (0, e2e_setup_1.closeTestingApp)(mongoose_2.default.connections);
|
|
26
27
|
});
|
|
27
28
|
let PagingPredicateProductEntity = class PagingPredicateProductEntity extends src_1.BaseEntity {
|
|
@@ -61,7 +62,7 @@ describe('DynamicApiModule forFeature - Aggregate abilityPredicate + Paging (e2e
|
|
|
61
62
|
const { body: { accessToken } } = await e2e_setup_1.server.post('/auth/login', { email, password: 'password123' });
|
|
62
63
|
return { accessToken };
|
|
63
64
|
};
|
|
64
|
-
describe('default predicateBehavior (throw/reject) — the crash this fix addresses', () => {
|
|
65
|
+
(0, vitest_1.describe)('default predicateBehavior (throw/reject) — the crash this fix addresses', () => {
|
|
65
66
|
class ProductAggregateQuery {
|
|
66
67
|
static toPipeline() {
|
|
67
68
|
return new mongodb_pipeline_builder_1.PipelineBuilder('paging-predicate-products-throw')
|
|
@@ -70,7 +71,7 @@ describe('DynamicApiModule forFeature - Aggregate abilityPredicate + Paging (e2e
|
|
|
70
71
|
.build();
|
|
71
72
|
}
|
|
72
73
|
}
|
|
73
|
-
beforeEach(async () => {
|
|
74
|
+
(0, vitest_1.beforeEach)(async () => {
|
|
74
75
|
await (0, shared_1.initApp)({
|
|
75
76
|
entity: PagingPredicateProductEntity,
|
|
76
77
|
controllerOptions: { path: 'paging-predicate-products-throw' },
|
|
@@ -89,7 +90,7 @@ describe('DynamicApiModule forFeature - Aggregate abilityPredicate + Paging (e2e
|
|
|
89
90
|
},
|
|
90
91
|
});
|
|
91
92
|
});
|
|
92
|
-
it('never returns 500 and allows the request when every document on the page passes', async () => {
|
|
93
|
+
(0, vitest_1.it)('never returns 500 and allows the request when every document on the page passes', async () => {
|
|
93
94
|
const model = await (0, utils_1.getModelFromEntity)(PagingPredicateProductEntity);
|
|
94
95
|
await model.insertMany([
|
|
95
96
|
{ name: 'apple', restricted: false },
|
|
@@ -97,11 +98,11 @@ describe('DynamicApiModule forFeature - Aggregate abilityPredicate + Paging (e2e
|
|
|
97
98
|
]);
|
|
98
99
|
const { accessToken } = await registerAndLogin('shopper1@paging.co');
|
|
99
100
|
const { status, body } = await e2e_setup_1.server.get('/paging-predicate-products-throw/aggregate', { authToken: accessToken, query: {} });
|
|
100
|
-
expect(status).toBe(200);
|
|
101
|
-
expect(body.list).toHaveLength(2);
|
|
102
|
-
expect(body.count).toBe(2);
|
|
101
|
+
(0, vitest_1.expect)(status).toBe(200);
|
|
102
|
+
(0, vitest_1.expect)(body.list).toHaveLength(2);
|
|
103
|
+
(0, vitest_1.expect)(body.count).toBe(2);
|
|
103
104
|
});
|
|
104
|
-
it('never returns 500 and denies the request (403) when a document on the page fails', async () => {
|
|
105
|
+
(0, vitest_1.it)('never returns 500 and denies the request (403) when a document on the page fails', async () => {
|
|
105
106
|
const model = await (0, utils_1.getModelFromEntity)(PagingPredicateProductEntity);
|
|
106
107
|
await model.insertMany([
|
|
107
108
|
{ name: 'apple', restricted: false },
|
|
@@ -109,10 +110,10 @@ describe('DynamicApiModule forFeature - Aggregate abilityPredicate + Paging (e2e
|
|
|
109
110
|
]);
|
|
110
111
|
const { accessToken } = await registerAndLogin('shopper2@paging.co');
|
|
111
112
|
const { status } = await e2e_setup_1.server.get('/paging-predicate-products-throw/aggregate', { authToken: accessToken, query: {} });
|
|
112
|
-
expect(status).toBe(403);
|
|
113
|
+
(0, vitest_1.expect)(status).toBe(403);
|
|
113
114
|
});
|
|
114
115
|
});
|
|
115
|
-
describe("predicateBehavior: 'filter' — count/totalPage consistency this fix addresses", () => {
|
|
116
|
+
(0, vitest_1.describe)("predicateBehavior: 'filter' — count/totalPage consistency this fix addresses", () => {
|
|
116
117
|
class ProductAggregateFilterQuery {
|
|
117
118
|
static toPipeline() {
|
|
118
119
|
return new mongodb_pipeline_builder_1.PipelineBuilder('paging-predicate-products-filter')
|
|
@@ -121,7 +122,7 @@ describe('DynamicApiModule forFeature - Aggregate abilityPredicate + Paging (e2e
|
|
|
121
122
|
.build();
|
|
122
123
|
}
|
|
123
124
|
}
|
|
124
|
-
beforeEach(async () => {
|
|
125
|
+
(0, vitest_1.beforeEach)(async () => {
|
|
125
126
|
await (0, shared_1.initApp)({
|
|
126
127
|
entity: PagingPredicateProductEntity,
|
|
127
128
|
controllerOptions: { path: 'paging-predicate-products-filter' },
|
|
@@ -137,7 +138,7 @@ describe('DynamicApiModule forFeature - Aggregate abilityPredicate + Paging (e2e
|
|
|
137
138
|
],
|
|
138
139
|
});
|
|
139
140
|
});
|
|
140
|
-
it('keeps count/totalPage describing the real total, not the filtered page size', async () => {
|
|
141
|
+
(0, vitest_1.it)('keeps count/totalPage describing the real total, not the filtered page size', async () => {
|
|
141
142
|
const model = await (0, utils_1.getModelFromEntity)(PagingPredicateProductEntity);
|
|
142
143
|
await model.insertMany([
|
|
143
144
|
{ name: 'apple', restricted: false },
|
|
@@ -146,11 +147,11 @@ describe('DynamicApiModule forFeature - Aggregate abilityPredicate + Paging (e2e
|
|
|
146
147
|
{ name: 'date', restricted: true },
|
|
147
148
|
]);
|
|
148
149
|
const { status, body } = await e2e_setup_1.server.get('/paging-predicate-products-filter/aggregate', { query: {} });
|
|
149
|
-
expect(status).toBe(200);
|
|
150
|
-
expect(body.list).toHaveLength(2);
|
|
151
|
-
expect(body.list.every((p) => !p.restricted)).toBe(true);
|
|
152
|
-
expect(body.count).toBe(4);
|
|
153
|
-
expect(body.totalPage).toBe(1);
|
|
150
|
+
(0, vitest_1.expect)(status).toBe(200);
|
|
151
|
+
(0, vitest_1.expect)(body.list).toHaveLength(2);
|
|
152
|
+
(0, vitest_1.expect)(body.list.every((p) => !p.restricted)).toBe(true);
|
|
153
|
+
(0, vitest_1.expect)(body.count).toBe(4);
|
|
154
|
+
(0, vitest_1.expect)(body.totalPage).toBe(1);
|
|
154
155
|
});
|
|
155
156
|
});
|
|
156
157
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregate-ability-predicate-paging.e2e-spec.js","sourceRoot":"","sources":["../../../libs/dynamic-api/test/for-feature/aggregate-ability-predicate-paging.e2e-spec.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,+CAAgD;AAChD,uEAA0E;AAC1E,uCAAgC;AAChC,mCAAyD;AACzD,4CAAuD;AACvD,yBAAuB;AACvB,oCAA8C;AAC9C,sCAAoC;AAsBpC,
|
|
1
|
+
{"version":3,"file":"aggregate-ability-predicate-paging.e2e-spec.js","sourceRoot":"","sources":["../../../libs/dynamic-api/test/for-feature/aggregate-ability-predicate-paging.e2e-spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const vitest_1 = require("vitest");
|
|
12
13
|
const mongoose_1 = require("@nestjs/mongoose");
|
|
13
14
|
const mongodb_pipeline_builder_1 = require("mongodb-pipeline-builder");
|
|
14
15
|
const mongoose_2 = require("mongoose");
|
|
@@ -17,11 +18,11 @@ const e2e_setup_1 = require("../e2e.setup");
|
|
|
17
18
|
require("dotenv/config");
|
|
18
19
|
const utils_1 = require("../utils");
|
|
19
20
|
const shared_1 = require("../shared");
|
|
20
|
-
describe('DynamicApiModule forFeature - Aggregate .Paging() without fromAggregate (e2e)', () => {
|
|
21
|
-
beforeEach(() => {
|
|
21
|
+
(0, vitest_1.describe)('DynamicApiModule forFeature - Aggregate .Paging() without fromAggregate (e2e)', () => {
|
|
22
|
+
(0, vitest_1.beforeEach)(() => {
|
|
22
23
|
src_1.DynamicApiModule.state['resetState']();
|
|
23
24
|
});
|
|
24
|
-
afterEach(async () => {
|
|
25
|
+
(0, vitest_1.afterEach)(async () => {
|
|
25
26
|
await (0, e2e_setup_1.closeTestingApp)(mongoose_2.default.connections);
|
|
26
27
|
});
|
|
27
28
|
let PagingNoPresenterProductEntity = class PagingNoPresenterProductEntity extends src_1.BaseEntity {
|
|
@@ -41,7 +42,7 @@ describe('DynamicApiModule forFeature - Aggregate .Paging() without fromAggregat
|
|
|
41
42
|
.build();
|
|
42
43
|
}
|
|
43
44
|
}
|
|
44
|
-
beforeEach(async () => {
|
|
45
|
+
(0, vitest_1.beforeEach)(async () => {
|
|
45
46
|
await (0, shared_1.initApp)({
|
|
46
47
|
entity: PagingNoPresenterProductEntity,
|
|
47
48
|
controllerOptions: { path: 'paging-no-presenter-products', isPublic: true },
|
|
@@ -54,15 +55,15 @@ describe('DynamicApiModule forFeature - Aggregate .Paging() without fromAggregat
|
|
|
54
55
|
],
|
|
55
56
|
});
|
|
56
57
|
});
|
|
57
|
-
it('returns a plain array — count/totalPage are silently absent, unchanged from before the fix', async () => {
|
|
58
|
+
(0, vitest_1.it)('returns a plain array — count/totalPage are silently absent, unchanged from before the fix', async () => {
|
|
58
59
|
const model = await (0, utils_1.getModelFromEntity)(PagingNoPresenterProductEntity);
|
|
59
60
|
await model.insertMany([{ name: 'apple' }, { name: 'banana' }, { name: 'cherry' }]);
|
|
60
61
|
const { status, body } = await e2e_setup_1.server.get('/paging-no-presenter-products/aggregate', { query: {} });
|
|
61
|
-
expect(status).toBe(200);
|
|
62
|
-
expect(Array.isArray(body)).toBe(true);
|
|
63
|
-
expect(body).toHaveLength(2);
|
|
64
|
-
expect(body.count).toBeUndefined();
|
|
65
|
-
expect(body.totalPage).toBeUndefined();
|
|
62
|
+
(0, vitest_1.expect)(status).toBe(200);
|
|
63
|
+
(0, vitest_1.expect)(Array.isArray(body)).toBe(true);
|
|
64
|
+
(0, vitest_1.expect)(body).toHaveLength(2);
|
|
65
|
+
(0, vitest_1.expect)(body.count).toBeUndefined();
|
|
66
|
+
(0, vitest_1.expect)(body.totalPage).toBeUndefined();
|
|
66
67
|
});
|
|
67
68
|
});
|
|
68
69
|
//# sourceMappingURL=aggregate-paging-without-from-aggregate.e2e-spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregate-paging-without-from-aggregate.e2e-spec.js","sourceRoot":"","sources":["../../../libs/dynamic-api/test/for-feature/aggregate-paging-without-from-aggregate.e2e-spec.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,+CAAgD;AAChD,uEAA0E;AAC1E,uCAAgC;AAChC,mCAAyD;AACzD,4CAAuD;AACvD,yBAAuB;AACvB,oCAA8C;AAC9C,sCAAoC;AAgBpC,
|
|
1
|
+
{"version":3,"file":"aggregate-paging-without-from-aggregate.e2e-spec.js","sourceRoot":"","sources":["../../../libs/dynamic-api/test/for-feature/aggregate-paging-without-from-aggregate.e2e-spec.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,mCAAqE;AACrE,+CAAgD;AAChD,uEAA0E;AAC1E,uCAAgC;AAChC,mCAAyD;AACzD,4CAAuD;AACvD,yBAAuB;AACvB,oCAA8C;AAC9C,sCAAoC;AAgBpC,IAAA,iBAAQ,EAAC,+EAA+E,EAAE,GAAG,EAAE;IAE7F,IAAA,mBAAU,EAAC,GAAG,EAAE;QACd,sBAAgB,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,IAAA,kBAAS,EAAC,KAAK,IAAI,EAAE;QACnB,MAAM,IAAA,2BAAe,EAAC,kBAAQ,CAAC,WAAW,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAGH,IAAM,8BAA8B,GAApC,MAAM,8BAA+B,SAAQ,gBAAU;KAGtD,CAAA;IADC;QADC,IAAA,eAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gEAC1B;IAFT,8BAA8B;QADnC,IAAA,iBAAM,EAAC,EAAE,UAAU,EAAE,8BAA8B,EAAE,CAAC;OACjD,8BAA8B,CAGnC;IAED,MAAM,kBAAkB;QACtB,MAAM,CAAC,UAAU;YACf,OAAO,IAAI,0CAAe,CAAC,8BAA8B,CAAC;iBACzD,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;iBACjB,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;iBACZ,KAAK,EAAE,CAAC;QACX,CAAC;KACF;IAED,IAAA,mBAAU,EAAC,KAAK,IAAI,EAAE;QACpB,MAAM,IAAA,gBAAO,EAAC;YACZ,MAAM,EAAE,8BAA8B;YACtC,iBAAiB,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC3E,MAAM,EAAE;gBACN;oBACE,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,WAAW;oBAEpB,IAAI,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE;iBACpC;aACF;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,4FAA4F,EAAE,KAAK,IAAI,EAAE;QAC1G,MAAM,KAAK,GAAG,MAAM,IAAA,0BAAkB,EAAC,8BAA8B,CAAC,CAAC;QACvE,MAAM,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QAEpF,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,kBAAM,CAAC,GAAG,CAAC,yCAAyC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QAEpG,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzB,IAAA,eAAM,EAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,IAAA,eAAM,EAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAI7B,IAAA,eAAM,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,CAAC;QACnC,IAAA,eAAM,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC,aAAa,EAAE,CAAC;IACzC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -9,6 +9,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const vitest_1 = require("vitest");
|
|
12
13
|
const mongoose_1 = require("@nestjs/mongoose");
|
|
13
14
|
const swagger_1 = require("@nestjs/swagger");
|
|
14
15
|
const mongodb_pipeline_builder_1 = require("mongodb-pipeline-builder");
|
|
@@ -17,11 +18,11 @@ const src_1 = require("../../src");
|
|
|
17
18
|
const e2e_setup_1 = require("../e2e.setup");
|
|
18
19
|
require("dotenv/config");
|
|
19
20
|
const shared_1 = require("../shared");
|
|
20
|
-
describe('DynamicApiModule forFeature - Aggregate paginated response in OpenAPI (e2e)', () => {
|
|
21
|
-
beforeEach(() => {
|
|
21
|
+
(0, vitest_1.describe)('DynamicApiModule forFeature - Aggregate paginated response in OpenAPI (e2e)', () => {
|
|
22
|
+
(0, vitest_1.beforeEach)(() => {
|
|
22
23
|
src_1.DynamicApiModule.state['resetState']();
|
|
23
24
|
});
|
|
24
|
-
afterEach(async () => {
|
|
25
|
+
(0, vitest_1.afterEach)(async () => {
|
|
25
26
|
await (0, e2e_setup_1.closeTestingApp)(mongoose_2.default.connections);
|
|
26
27
|
});
|
|
27
28
|
let OpenApiPaginatedProductEntity = class OpenApiPaginatedProductEntity extends src_1.BaseEntity {
|
|
@@ -46,7 +47,7 @@ describe('DynamicApiModule forFeature - Aggregate paginated response in OpenAPI
|
|
|
46
47
|
.build();
|
|
47
48
|
}
|
|
48
49
|
}
|
|
49
|
-
it('documents { list, count, totalPage } instead of a bare presenter when fromAggregate exists', async () => {
|
|
50
|
+
(0, vitest_1.it)('documents { list, count, totalPage } instead of a bare presenter when fromAggregate exists', async () => {
|
|
50
51
|
await (0, shared_1.initApp)({
|
|
51
52
|
entity: OpenApiPaginatedProductEntity,
|
|
52
53
|
controllerOptions: { path: 'openapi-paginated-products', isPublic: true },
|
|
@@ -60,22 +61,22 @@ describe('DynamicApiModule forFeature - Aggregate paginated response in OpenAPI
|
|
|
60
61
|
});
|
|
61
62
|
const document = swagger_1.SwaggerModule.createDocument(global.app, new swagger_1.DocumentBuilder().build());
|
|
62
63
|
const operation = document.paths['/openapi-paginated-products/aggregate']?.get;
|
|
63
|
-
expect(operation).toBeDefined();
|
|
64
|
+
(0, vitest_1.expect)(operation).toBeDefined();
|
|
64
65
|
const responseSchema = operation?.responses?.default?.content?.['application/json']?.schema;
|
|
65
|
-
expect(responseSchema).toBeDefined();
|
|
66
|
-
expect('$ref' in responseSchema).toBe(true);
|
|
66
|
+
(0, vitest_1.expect)(responseSchema).toBeDefined();
|
|
67
|
+
(0, vitest_1.expect)('$ref' in responseSchema).toBe(true);
|
|
67
68
|
const schemaName = (responseSchema.$ref).split('/').pop();
|
|
68
|
-
expect(schemaName).toMatch(/^Paginated/);
|
|
69
|
+
(0, vitest_1.expect)(schemaName).toMatch(/^Paginated/);
|
|
69
70
|
const wrapperSchema = document.components?.schemas?.[schemaName];
|
|
70
|
-
expect(wrapperSchema).toBeDefined();
|
|
71
|
-
expect(wrapperSchema.properties.list.type).toBe('array');
|
|
72
|
-
expect(wrapperSchema.properties.list.items).toHaveProperty('$ref');
|
|
73
|
-
expect(wrapperSchema.properties.count.type).toBe('number');
|
|
74
|
-
expect(wrapperSchema.properties.totalPage.type).toBe('number');
|
|
71
|
+
(0, vitest_1.expect)(wrapperSchema).toBeDefined();
|
|
72
|
+
(0, vitest_1.expect)(wrapperSchema.properties.list.type).toBe('array');
|
|
73
|
+
(0, vitest_1.expect)(wrapperSchema.properties.list.items).toHaveProperty('$ref');
|
|
74
|
+
(0, vitest_1.expect)(wrapperSchema.properties.count.type).toBe('number');
|
|
75
|
+
(0, vitest_1.expect)(wrapperSchema.properties.totalPage.type).toBe('number');
|
|
75
76
|
const itemSchemaName = wrapperSchema.properties.list.items.$ref.split('/').pop();
|
|
76
|
-
expect(document.components?.schemas?.[itemSchemaName]).toBeDefined();
|
|
77
|
+
(0, vitest_1.expect)(document.components?.schemas?.[itemSchemaName]).toBeDefined();
|
|
77
78
|
});
|
|
78
|
-
it('keeps documenting a bare presenter for an Aggregate route with no fromAggregate', async () => {
|
|
79
|
+
(0, vitest_1.it)('keeps documenting a bare presenter for an Aggregate route with no fromAggregate', async () => {
|
|
79
80
|
await (0, shared_1.initApp)({
|
|
80
81
|
entity: OpenApiPaginatedProductEntity,
|
|
81
82
|
controllerOptions: { path: 'openapi-plain-products', isPublic: true },
|
|
@@ -90,9 +91,9 @@ describe('DynamicApiModule forFeature - Aggregate paginated response in OpenAPI
|
|
|
90
91
|
const document = swagger_1.SwaggerModule.createDocument(global.app, new swagger_1.DocumentBuilder().build());
|
|
91
92
|
const operation = document.paths['/openapi-plain-products/aggregate']?.get;
|
|
92
93
|
const responseSchema = operation?.responses?.default?.content?.['application/json']?.schema;
|
|
93
|
-
expect(responseSchema).toBeDefined();
|
|
94
|
+
(0, vitest_1.expect)(responseSchema).toBeDefined();
|
|
94
95
|
const schemaName = (responseSchema.$ref ?? '').split('/').pop() ?? '';
|
|
95
|
-
expect(schemaName).not.toMatch(/^Paginated/);
|
|
96
|
+
(0, vitest_1.expect)(schemaName).not.toMatch(/^Paginated/);
|
|
96
97
|
});
|
|
97
98
|
});
|
|
98
99
|
//# sourceMappingURL=aggregate-swagger-paginated-response.e2e-spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregate-swagger-paginated-response.e2e-spec.js","sourceRoot":"","sources":["../../../libs/dynamic-api/test/for-feature/aggregate-swagger-paginated-response.e2e-spec.ts"],"names":[],"mappings":";;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"aggregate-swagger-paginated-response.e2e-spec.js","sourceRoot":"","sources":["../../../libs/dynamic-api/test/for-feature/aggregate-swagger-paginated-response.e2e-spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const vitest_1 = require("vitest");
|
|
12
13
|
const mongoose_1 = require("@nestjs/mongoose");
|
|
13
14
|
const mongoose_2 = require("mongoose");
|
|
14
15
|
const src_1 = require("../../src");
|
|
@@ -29,15 +30,15 @@ const getAuditLogEntries = async () => {
|
|
|
29
30
|
const model = await (0, utils_1.getModelFromEntity)(ItemEntity);
|
|
30
31
|
return model.db.collection('e2e-audit-log-items_audit_log').find().toArray();
|
|
31
32
|
};
|
|
32
|
-
describe('DynamicApiModule forFeature - audit log (e2e)', () => {
|
|
33
|
-
beforeEach(() => {
|
|
33
|
+
(0, vitest_1.describe)('DynamicApiModule forFeature - audit log (e2e)', () => {
|
|
34
|
+
(0, vitest_1.beforeEach)(() => {
|
|
34
35
|
src_1.DynamicApiModule.state['resetState']();
|
|
35
36
|
});
|
|
36
|
-
afterEach(async () => {
|
|
37
|
+
(0, vitest_1.afterEach)(async () => {
|
|
37
38
|
await (0, e2e_setup_1.closeTestingApp)(mongoose_2.default.connections);
|
|
38
39
|
});
|
|
39
|
-
describe('routes with auditLog: true', () => {
|
|
40
|
-
beforeEach(async () => {
|
|
40
|
+
(0, vitest_1.describe)('routes with auditLog: true', () => {
|
|
41
|
+
(0, vitest_1.beforeEach)(async () => {
|
|
41
42
|
await (0, shared_1.initApp)({
|
|
42
43
|
entity: ItemEntity,
|
|
43
44
|
controllerOptions: { path: 'audit-items' },
|
|
@@ -50,64 +51,64 @@ describe('DynamicApiModule forFeature - audit log (e2e)', () => {
|
|
|
50
51
|
],
|
|
51
52
|
});
|
|
52
53
|
});
|
|
53
|
-
it('writes a create entry with before: null and the created document as after', async () => {
|
|
54
|
+
(0, vitest_1.it)('writes a create entry with before: null and the created document as after', async () => {
|
|
54
55
|
const { status, body } = await e2e_setup_1.server.post('/audit-items', { name: 'first' });
|
|
55
|
-
expect(status).toBe(201);
|
|
56
|
+
(0, vitest_1.expect)(status).toBe(201);
|
|
56
57
|
const entries = await getAuditLogEntries();
|
|
57
58
|
const entry = entries.find((e) => e.action === 'create');
|
|
58
|
-
expect(entry).toMatchObject({
|
|
59
|
+
(0, vitest_1.expect)(entry).toMatchObject({
|
|
59
60
|
action: 'create',
|
|
60
61
|
entityId: body.id,
|
|
61
62
|
before: null,
|
|
62
63
|
after: { name: 'first' },
|
|
63
64
|
});
|
|
64
65
|
});
|
|
65
|
-
it('writes an update entry with the before and after documents', async () => {
|
|
66
|
+
(0, vitest_1.it)('writes an update entry with the before and after documents', async () => {
|
|
66
67
|
const { body: created } = await e2e_setup_1.server.post('/audit-items', { name: 'to-update' });
|
|
67
68
|
const { status } = await e2e_setup_1.server.patch(`/audit-items/${created.id}`, { name: 'updated' });
|
|
68
|
-
expect(status).toBe(200);
|
|
69
|
+
(0, vitest_1.expect)(status).toBe(200);
|
|
69
70
|
const entries = await getAuditLogEntries();
|
|
70
71
|
const entry = entries.find((e) => e.action === 'update');
|
|
71
|
-
expect(entry).toMatchObject({
|
|
72
|
+
(0, vitest_1.expect)(entry).toMatchObject({
|
|
72
73
|
action: 'update',
|
|
73
74
|
entityId: created.id,
|
|
74
75
|
before: { name: 'to-update' },
|
|
75
76
|
after: { name: 'updated' },
|
|
76
77
|
});
|
|
77
78
|
});
|
|
78
|
-
it('writes a replace entry with the before and after documents', async () => {
|
|
79
|
+
(0, vitest_1.it)('writes a replace entry with the before and after documents', async () => {
|
|
79
80
|
const { body: created } = await e2e_setup_1.server.post('/audit-items', { name: 'to-replace' });
|
|
80
81
|
const { status } = await e2e_setup_1.server.put(`/audit-items/${created.id}`, { name: 'replaced' });
|
|
81
|
-
expect(status).toBe(200);
|
|
82
|
+
(0, vitest_1.expect)(status).toBe(200);
|
|
82
83
|
const entries = await getAuditLogEntries();
|
|
83
84
|
const entry = entries.find((e) => e.action === 'replace');
|
|
84
|
-
expect(entry).toMatchObject({
|
|
85
|
+
(0, vitest_1.expect)(entry).toMatchObject({
|
|
85
86
|
action: 'replace',
|
|
86
87
|
entityId: created.id,
|
|
87
88
|
before: { name: 'to-replace' },
|
|
88
89
|
after: { name: 'replaced' },
|
|
89
90
|
});
|
|
90
91
|
});
|
|
91
|
-
it('writes a duplicate entry with before: null and the duplicated document as after', async () => {
|
|
92
|
+
(0, vitest_1.it)('writes a duplicate entry with before: null and the duplicated document as after', async () => {
|
|
92
93
|
const { body: created } = await e2e_setup_1.server.post('/audit-items', { name: 'to-duplicate' });
|
|
93
94
|
const { status, body: duplicated } = await e2e_setup_1.server.post(`/audit-items/duplicate/${created.id}`, {});
|
|
94
|
-
expect(status).toBe(201);
|
|
95
|
+
(0, vitest_1.expect)(status).toBe(201);
|
|
95
96
|
const entries = await getAuditLogEntries();
|
|
96
97
|
const entry = entries.find((e) => e.action === 'duplicate');
|
|
97
|
-
expect(entry).toMatchObject({
|
|
98
|
+
(0, vitest_1.expect)(entry).toMatchObject({
|
|
98
99
|
action: 'duplicate',
|
|
99
100
|
entityId: duplicated.id,
|
|
100
101
|
before: null,
|
|
101
102
|
after: { name: 'to-duplicate' },
|
|
102
103
|
});
|
|
103
104
|
});
|
|
104
|
-
it('writes a delete entry with the deleted document as before and after: null', async () => {
|
|
105
|
+
(0, vitest_1.it)('writes a delete entry with the deleted document as before and after: null', async () => {
|
|
105
106
|
const { body: created } = await e2e_setup_1.server.post('/audit-items', { name: 'to-delete' });
|
|
106
107
|
const { status } = await e2e_setup_1.server.delete(`/audit-items/${created.id}`);
|
|
107
|
-
expect(status).toBe(200);
|
|
108
|
+
(0, vitest_1.expect)(status).toBe(200);
|
|
108
109
|
const entries = await getAuditLogEntries();
|
|
109
110
|
const entry = entries.find((e) => e.action === 'delete');
|
|
110
|
-
expect(entry).toMatchObject({
|
|
111
|
+
(0, vitest_1.expect)(entry).toMatchObject({
|
|
111
112
|
action: 'delete',
|
|
112
113
|
entityId: created.id,
|
|
113
114
|
before: { name: 'to-delete' },
|
|
@@ -115,19 +116,19 @@ describe('DynamicApiModule forFeature - audit log (e2e)', () => {
|
|
|
115
116
|
});
|
|
116
117
|
});
|
|
117
118
|
});
|
|
118
|
-
describe('routes without auditLog configured', () => {
|
|
119
|
-
beforeEach(async () => {
|
|
119
|
+
(0, vitest_1.describe)('routes without auditLog configured', () => {
|
|
120
|
+
(0, vitest_1.beforeEach)(async () => {
|
|
120
121
|
await (0, shared_1.initApp)({
|
|
121
122
|
entity: ItemEntity,
|
|
122
123
|
controllerOptions: { path: 'audit-items' },
|
|
123
124
|
routes: [{ type: 'CreateOne' }],
|
|
124
125
|
});
|
|
125
126
|
});
|
|
126
|
-
it('does not write any audit log entry', async () => {
|
|
127
|
+
(0, vitest_1.it)('does not write any audit log entry', async () => {
|
|
127
128
|
const { status } = await e2e_setup_1.server.post('/audit-items', { name: 'no-audit' });
|
|
128
|
-
expect(status).toBe(201);
|
|
129
|
+
(0, vitest_1.expect)(status).toBe(201);
|
|
129
130
|
const entries = await getAuditLogEntries();
|
|
130
|
-
expect(entries).toHaveLength(0);
|
|
131
|
+
(0, vitest_1.expect)(entries).toHaveLength(0);
|
|
131
132
|
});
|
|
132
133
|
});
|
|
133
134
|
});
|