test(cli): update snapshots for list commands (#21496)

This commit is contained in:
Ben Irvin 2024-10-01 10:37:37 +02:00 committed by GitHub
parent 5007ea441d
commit bdce42ce6e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 596 additions and 589 deletions

View File

@ -0,0 +1,15 @@
# simple strapi command tests
These are the CLI tests for the simple strapi commands that aren't covered by another test domain
## Update list snapshots
To update the \*:list command snapshots:
- go to `cd test-apps/cli/test-app-0`
- run `yarn install` to add project to workspace; do not commit any changes to yarn.lock
- run the command this test is for (for example, `yarn strapi routes:list`)
- if output looks as expected, copy and paste it to the test string
- backslashes (\\) must be manually escaped with another backslash (\\)
- comparison only checks for the existence of each trimmed line that contains alphanumeric characters, so order and whitespace _outside_ of the boxes will not matter. Whitespace _within_ the boxes may be compared.
- you may need to run `yarn test:clean` before tests can run again

View File

@ -4,8 +4,7 @@ const coffee = require('coffee');
const utils = require('../../../utils');
// TODO: Fix expected outputs
describe.skip('policies:list', () => {
describe('policies:list', () => {
let appPath;
beforeAll(async () => {
@ -23,19 +22,17 @@ describe.skip('policies:list', () => {
const output = stdout.trim();
const expected = `
Name
admin::isAuthenticatedAdmin
admin::hasPermissions
admin::isTelemetryEnabled
plugin::content-manager.has-draft-and-publish
plugin::content-manager.hasPermissions
Name
plugin::content-manager.hasPermissions
admin::isAuthenticatedAdmin
admin::hasPermissions
admin::isTelemetryEnabled
`;
utils.helpers.expectConsoleLinesToInclude(output, expected);

View File

@ -4,8 +4,7 @@ const coffee = require('coffee');
const utils = require('../../../utils');
// TODO: Fix expected outputs
describe.skip('routes:list', () => {
describe('routes:list', () => {
let appPath;
beforeAll(async () => {
@ -23,433 +22,429 @@ describe.skip('routes:list', () => {
const output = stdout.trim();
const expected = `
Method Path
HEAD|ACL|BIND|CHE /_health
HEAD|GET /uploads/(.*)
HEAD|GET /plugins/documentation/(.*)
HEAD|GET /admin/:path*
HEAD|GET /
HEAD|GET /index.html
HEAD|GET /assets/images/(.*)
HEAD|GET /((?!uploads/).+)
HEAD|ACL|BIND|CHE /graphql
HEAD|GET /api/categories
HEAD|GET /api/categories/:id
POST /api/categories
PUT /api/categories/:id
DELETE /api/categories/:id
POST /api/categories/:id/localizations
HEAD|GET /api/complexes
-
HEAD|GET /api/complexes/:id
POST /api/complexes
PUT /api/complexes/:id
DELETE /api/complexes/:id
POST /api/complexes/:id/localizations
POST /api/config/ratelimit/enable
HEAD|GET /api/single-type-localized
PUT /api/single-type-localized
DELETE /api/single-type-localized
POST /api/single-type-localized/localizations
HEAD|GET /api/single-type-non-local
PUT /api/single-type-non-local
DELETE /api/single-type-non-local
HEAD|GET /api/single-type-unpublished
PUT /api/single-type-unpublished
DELETE /api/single-type-unpublished
HEAD|GET /api/content-type-builder/content-types
-
HEAD|GET /api/content-type-builder/content-types/:uid
HEAD|GET /api/content-type-builder/components
HEAD|GET /api/content-type-builder/components/:uid
POST /api/email
POST /api/upload
HEAD|GET /api/upload/files
HEAD|GET /api/upload/files/:id
DELETE /api/upload/files/:id
HEAD|GET /api/i18n/locales
HEAD|GET /api/connect/(.*)
POST /api/auth/local
POST /api/auth/local/register
HEAD|GET /api/auth/:provider/callback
POST /api/auth/forgot-password
POST /api/auth/reset-password
HEAD|GET /api/auth/email-confirmation
POST /api/auth/send-email-confirmation
POST /api/auth/change-password
HEAD|GET /api/users/count
HEAD|GET /api/users
HEAD|GET /api/users/me
HEAD|GET /api/users/:id
POST /api/users
PUT /api/users/:id
DELETE /api/users/:id
HEAD|GET /api/users-permissions/roles/:id
HEAD|GET /api/users-permissions/roles
POST /api/users-permissions/roles
PUT /api/users-permissions/roles/:role
DELETE /api/users-permissions/roles/:role
HEAD|GET /api/users-permissions/permissions
HEAD|GET /admin/init
HEAD|GET /admin/project-settings
POST /admin/project-settings
HEAD|GET /admin/project-type
HEAD|GET /admin/information
HEAD|GET /admin/telemetry-properties
HEAD|GET /admin/plugins
POST /admin/login
POST /admin/renew-token
POST /admin/register-admin
HEAD|GET /admin/registration-info
POST /admin/register
POST /admin/forgot-password
POST /admin/reset-password
POST /admin/logout
HEAD|GET /admin/permissions
POST /admin/permissions/check
HEAD|GET /admin/users/me
PUT /admin/users/me
HEAD|GET /admin/users/me/permissions
POST /admin/users
-
HEAD|GET /admin/users
HEAD|GET /admin/users/:id
PUT /admin/users/:id
DELETE /admin/users/:id
POST /admin/users/batch-delete
HEAD|GET /admin/roles/:id/permissions
PUT /admin/roles/:id/permissions
HEAD|GET /admin/roles/:id
HEAD|GET /admin/roles
POST /admin/roles
PUT /admin/roles/:id
DELETE /admin/roles/:id
POST /admin/roles/batch-delete
HEAD|GET /admin/webhooks
POST /admin/webhooks
HEAD|GET /admin/webhooks/:id
PUT /admin/webhooks/:id
DELETE /admin/webhooks/:id
POST /admin/webhooks/batch-delete
POST /admin/webhooks/:id/trigger
POST /admin/api-tokens
HEAD|GET /admin/api-tokens
DELETE /admin/api-tokens/:id
HEAD|GET /admin/api-tokens/:id
PUT /admin/api-tokens/:id
POST /admin/api-tokens/:id/regenerate
HEAD|GET /admin/content-api/permissions
HEAD|GET /admin/content-api/routes
HEAD|GET /admin/transfer/runner/push
HEAD|GET /admin/transfer/runner/pull
POST /admin/transfer/tokens
HEAD|GET /admin/transfer/tokens
DELETE /admin/transfer/tokens/:id
HEAD|GET /admin/transfer/tokens/:id
PUT /admin/transfer/tokens/:id
POST /admin/transfer/tokens/:id/regenerate
HEAD|GET /content-manager/init
HEAD|GET /content-manager/content-types
HEAD|GET /content-manager/content-types-settings
HEAD|GET /content-manager/content-types/:uid/configuration
PUT /content-manager/content-types/:uid/configuration
HEAD|GET /content-manager/components
HEAD|GET /content-manager/components/:uid/configuration
PUT /content-manager/components/:uid/configuration
POST /content-manager/uid/generate
POST /content-manager/uid/check-availability
HEAD|GET /content-manager/relations/:model/:targetField
HEAD|GET /content-manager/relations/:model/:id/:targetField
HEAD|GET /content-manager/single-types/:model
PUT /content-manager/single-types/:model
DELETE /content-manager/single-types/:model
POST /content-manager/single-types/:model/actions/publish
-
POST /content-manager/single-types/:model/actions/unpublish
HEAD|GET /content-manager/single-types/:model/actions/countDraftRelations
HEAD|GET /content-manager/collection-types/:model
POST /content-manager/collection-types/:model
POST /content-manager/collection-types/:model/clone/:sourceId
POST /content-manager/collection-types/:model/auto-clone/:sourceId
HEAD|GET /content-manager/collection-types/:model/:id
PUT /content-manager/collection-types/:model/:id
DELETE /content-manager/collection-types/:model/:id
POST /content-manager/collection-types/:model/:id/actions/publish
POST /content-manager/collection-types/:model/:id/actions/unpublish
POST /content-manager/collection-types/:model/actions/bulkDelete
POST /content-manager/collection-types/:model/actions/bulkPublish
POST /content-manager/collection-types/:model/actions/bulkUnpublish
HEAD|GET /content-manager/collection-types/:model/:id/actions/countDraftRelations
HEAD|GET /content-manager/collection-types/:model/actions/countManyEntriesDraftRelations
HEAD|GET /content-type-builder/reserved-names
HEAD|GET /content-type-builder/content-types
HEAD|GET /content-type-builder/content-types/:uid
POST /content-type-builder/content-types
PUT /content-type-builder/content-types/:uid
DELETE /content-type-builder/content-types/:uid
HEAD|GET /content-type-builder/components
HEAD|GET /content-type-builder/components/:uid
POST /content-type-builder/components
PUT /content-type-builder/components/:uid
DELETE /content-type-builder/components/:uid
PUT /content-type-builder/component-categories/:name
DELETE /content-type-builder/component-categories/:name
POST /email
POST /email/test
HEAD|GET /email/settings
HEAD|GET /upload/settings
PUT /upload/settings
POST /upload
HEAD|GET /upload/files
HEAD|GET /upload/files/:id
DELETE /upload/files/:id
HEAD|GET /upload/folders/:id
HEAD|GET /upload/folders
POST /upload/folders
PUT /upload/folders/:id
HEAD|GET /upload/folder-structure
POST /upload/actions/bulk-delete
POST /upload/actions/bulk-move
HEAD|GET /upload/configuration
PUT /upload/configuration
HEAD|GET /documentation
HEAD|GET /documentation/v:major(\\d+).:minor(\\d+).:patch(\\d+)
HEAD|GET /documentation/login
POST /documentation/login
HEAD|GET /documentation/getInfos
-
POST /documentation/regenerateDoc
PUT /documentation/updateSettings
DELETE /documentation/deleteDoc/:version
HEAD|GET /i18n/iso-locales
HEAD|GET /i18n/locales
POST /i18n/locales
PUT /i18n/locales/:id
DELETE /i18n/locales/:id
POST /i18n/content-manager/actions/get-non-localized-fields
HEAD|GET /users-permissions/roles/:id
HEAD|GET /users-permissions/roles
POST /users-permissions/roles
PUT /users-permissions/roles/:role
DELETE /users-permissions/roles/:role
HEAD|GET /users-permissions/email-templates
PUT /users-permissions/email-templates
HEAD|GET /users-permissions/advanced
PUT /users-permissions/advanced
HEAD|GET /users-permissions/providers
PUT /users-permissions/providers
HEAD|GET /users-permissions/permissions
HEAD|GET /users-permissions/policies
HEAD|GET /users-permissions/routes
Method Path
HEAD|ACL|BIND|CHE /_health
HEAD|GET /admin/:path*
HEAD|GET /uploads/(.*)
HEAD|GET /plugins/documentation/(.*)
HEAD|GET /
HEAD|GET /((?!uploads/).+)
HEAD|ACL|BIND|CHE /graphql
HEAD|GET /api/categories
HEAD|GET /api/categories/:id
POST /api/categories
PUT /api/categories/:id
DELETE /api/categories/:id
HEAD|GET /api/complexes
HEAD|GET /api/complexes/:id
POST /api/complexes
PUT /api/complexes/:id
DELETE /api/complexes/:id
POST /api/config/ratelimit/enable
HEAD|GET /api/single-type-localized
PUT /api/single-type-localized
DELETE /api/single-type-localized
HEAD|GET /api/single-type-non-local
PUT /api/single-type-non-local
DELETE /api/single-type-non-local
HEAD|GET /api/single-type-unpublished
PUT /api/single-type-unpublished
DELETE /api/single-type-unpublished
HEAD|GET /api/content-type-builder/content-types
HEAD|GET /api/content-type-builder/content-types/:uid
HEAD|GET /api/content-type-builder/components
HEAD|GET /api/content-type-builder/components/:uid
POST /api/email
POST /api/upload
HEAD|GET /api/upload/files
HEAD|GET /api/upload/files/:id
DELETE /api/upload/files/:id
HEAD|GET /api/i18n/locales
HEAD|GET /api/connect/(.*)
POST /api/auth/local
POST /api/auth/local/register
HEAD|GET /api/auth/:provider/callback
POST /api/auth/forgot-password
POST /api/auth/reset-password
HEAD|GET /api/auth/email-confirmation
POST /api/auth/send-email-confirmation
POST /api/auth/change-password
HEAD|GET /api/users/count
HEAD|GET /api/users
HEAD|GET /api/users/me
HEAD|GET /api/users/:id
POST /api/users
PUT /api/users/:id
DELETE /api/users/:id
HEAD|GET /api/users-permissions/roles/:id
HEAD|GET /api/users-permissions/roles
POST /api/users-permissions/roles
PUT /api/users-permissions/roles/:role
DELETE /api/users-permissions/roles/:role
HEAD|GET /api/users-permissions/permissions
HEAD|GET /admin/init
HEAD|GET /admin/project-settings
POST /admin/project-settings
HEAD|GET /admin/project-type
HEAD|GET /admin/information
HEAD|GET /admin/telemetry-properties
HEAD|GET /admin/plugins
POST /admin/login
POST /admin/renew-token
POST /admin/register-admin
HEAD|GET /admin/registration-info
POST /admin/register
POST /admin/forgot-password
POST /admin/reset-password
POST /admin/logout
HEAD|GET /admin/permissions
POST /admin/permissions/check
HEAD|GET /admin/users/me
PUT /admin/users/me
HEAD|GET /admin/users/me/permissions
POST /admin/users
HEAD|GET /admin/users
HEAD|GET /admin/users/:id
PUT /admin/users/:id
DELETE /admin/users/:id
POST /admin/users/batch-delete
HEAD|GET /admin/roles/:id/permissions
PUT /admin/roles/:id/permissions
HEAD|GET /admin/roles/:id
HEAD|GET /admin/roles
POST /admin/roles
PUT /admin/roles/:id
DELETE /admin/roles/:id
POST /admin/roles/batch-delete
HEAD|GET /admin/webhooks
POST /admin/webhooks
HEAD|GET /admin/webhooks/:id
PUT /admin/webhooks/:id
DELETE /admin/webhooks/:id
POST /admin/webhooks/batch-delete
POST /admin/webhooks/:id/trigger
POST /admin/api-tokens
HEAD|GET /admin/api-tokens
DELETE /admin/api-tokens/:id
HEAD|GET /admin/api-tokens/:id
PUT /admin/api-tokens/:id
POST /admin/api-tokens/:id/regenerate
HEAD|GET /admin/content-api/permissions
HEAD|GET /admin/content-api/routes
HEAD|GET /admin/transfer/runner/push
HEAD|GET /admin/transfer/runner/pull
POST /admin/transfer/tokens
HEAD|GET /admin/transfer/tokens
DELETE /admin/transfer/tokens/:id
HEAD|GET /admin/transfer/tokens/:id
PUT /admin/transfer/tokens/:id
POST /admin/transfer/tokens/:id/regenerate
HEAD|GET /content-manager/init
HEAD|GET /content-manager/content-types
HEAD|GET /content-manager/content-types-settings
HEAD|GET /content-manager/content-types/:uid/configuration
PUT /content-manager/content-types/:uid/configuration
HEAD|GET /content-manager/components
HEAD|GET /content-manager/components/:uid/configuration
PUT /content-manager/components/:uid/configuration
POST /content-manager/uid/generate
POST /content-manager/uid/check-availability
HEAD|GET /content-manager/relations/:model/:targetField
HEAD|GET /content-manager/relations/:model/:id/:targetField
HEAD|GET /content-manager/single-types/:model
PUT /content-manager/single-types/:model
DELETE /content-manager/single-types/:model
POST /content-manager/single-types/:model/actions/publish
POST /content-manager/single-types/:model/actions/unpublish
POST /content-manager/single-types/:model/actions/discard
HEAD|GET /content-manager/single-types/:model/actions/countDraftRelations
HEAD|GET /content-manager/collection-types/:model
POST /content-manager/collection-types/:model
POST /content-manager/collection-types/:model/clone/:sourceId
POST /content-manager/collection-types/:model/auto-clone/:sourceId
HEAD|GET /content-manager/collection-types/:model/:id
PUT /content-manager/collection-types/:model/:id
DELETE /content-manager/collection-types/:model/:id
POST /content-manager/collection-types/:model/actions/publish
POST /content-manager/collection-types/:model/:id/actions/publish
POST /content-manager/collection-types/:model/:id/actions/unpublish
POST /content-manager/collection-types/:model/:id/actions/discard
POST /content-manager/collection-types/:model/actions/bulkDelete
POST /content-manager/collection-types/:model/actions/bulkPublish
POST /content-manager/collection-types/:model/actions/bulkUnpublish
HEAD|GET /content-manager/collection-types/:model/:id/actions/countDraftRelations
HEAD|GET /content-manager/collection-types/:model/actions/countManyEntriesDraftRelations
HEAD|GET /content-type-builder/reserved-names
HEAD|GET /content-type-builder/content-types
HEAD|GET /content-type-builder/content-types/:uid
POST /content-type-builder/content-types
PUT /content-type-builder/content-types/:uid
DELETE /content-type-builder/content-types/:uid
HEAD|GET /content-type-builder/components
HEAD|GET /content-type-builder/components/:uid
POST /content-type-builder/components
PUT /content-type-builder/components/:uid
DELETE /content-type-builder/components/:uid
PUT /content-type-builder/component-categories/:name
DELETE /content-type-builder/component-categories/:name
POST /email
POST /email/test
HEAD|GET /email/settings
HEAD|GET /upload/settings
PUT /upload/settings
POST /upload
HEAD|GET /upload/files
HEAD|GET /upload/files/:id
DELETE /upload/files/:id
HEAD|GET /upload/folders/:id
HEAD|GET /upload/folders
POST /upload/folders
PUT /upload/folders/:id
HEAD|GET /upload/folder-structure
POST /upload/actions/bulk-delete
POST /upload/actions/bulk-move
HEAD|GET /upload/configuration
PUT /upload/configuration
HEAD|GET /i18n/iso-locales
HEAD|GET /i18n/locales
POST /i18n/locales
PUT /i18n/locales/:id
DELETE /i18n/locales/:id
POST /i18n/content-manager/actions/get-non-localized-fields
HEAD|GET /documentation
HEAD|GET /documentation/v:major(\\d+).:minor(\\d+).:patch(\\d+)
HEAD|GET /documentation/login
POST /documentation/login
HEAD|GET /documentation/getInfos
POST /documentation/regenerateDoc
PUT /documentation/updateSettings
DELETE /documentation/deleteDoc/:version
HEAD|GET /users-permissions/roles/:id
HEAD|GET /users-permissions/roles
POST /users-permissions/roles
PUT /users-permissions/roles/:role
DELETE /users-permissions/roles/:role
HEAD|GET /users-permissions/email-templates
PUT /users-permissions/email-templates
HEAD|GET /users-permissions/advanced
PUT /users-permissions/advanced
HEAD|GET /users-permissions/providers
PUT /users-permissions/providers
HEAD|GET /users-permissions/permissions
HEAD|GET /users-permissions/policies
HEAD|GET /users-permissions/routes
`;
utils.helpers.expectConsoleLinesToInclude(output, expected);

View File

@ -4,8 +4,7 @@ const coffee = require('coffee');
const utils = require('../../../utils');
// TODO: Fix expected outputs
describe.skip('services:list', () => {
describe('services:list', () => {
let appPath;
beforeAll(async () => {
@ -23,147 +22,147 @@ describe.skip('services:list', () => {
const output = stdout.trim();
const expected = `
Name
admin::auth
admin::user
admin::role
admin::passport
admin::token
admin::permission
admin::metrics
admin::content-type
admin::constants
admin::condition
admin::action
admin::api-token
admin::transfer
admin::project-settings
plugin::content-manager.components
plugin::content-manager.content-types
plugin::content-manager.data-mapper
plugin::content-manager.entity-manager
plugin::content-manager.field-sizes
plugin::content-manager.metrics
plugin::content-manager.permission-checker
plugin::content-manager.permission
plugin::content-manager.populate-builder
plugin::content-manager.uid
plugin::content-type-builder.content-types
plugin::content-type-builder.components
plugin::content-type-builder.component-categories
plugin::content-type-builder.builder
plugin::content-type-builder.api-handler
plugin::email.email
plugin::upload.provider
plugin::upload.upload
plugin::upload.folder
plugin::upload.file
plugin::upload.weeklyMetrics
plugin::upload.metrics
plugin::upload.image-manipulation
plugin::upload.api-upload-folder
plugin::upload.extensions
plugin::documentation.documentation
plugin::documentation.override
plugin::graphql.builders
plugin::graphql.content-api
plugin::graphql.constants
plugin::graphql.extension
plugin::graphql.format
plugin::graphql.internals
plugin::graphql.type-registry
plugin::graphql.utils
plugin::i18n.permissions
plugin::i18n.metrics
plugin::i18n.localizations
plugin::i18n.locales
plugin::i18n.iso-locales
plugin::i18n.core-api
plugin::i18n.content-types
plugin::users-permissions.jwt
plugin::users-permissions.providers
plugin::users-permissions.providers-registry
plugin::users-permissions.role
plugin::users-permissions.user
plugin::users-permissions.users-permissions
plugin::users-permissions.permission
api::category.category
api::complex.complex
api::config.config
api::single-type-localized.single-type-localized
api::single-type-non-local.single-type-non-local
api::single-type-unpublished.single-type-unpublished
Name
plugin::content-manager.components
plugin::content-manager.content-types
plugin::content-manager.data-mapper
plugin::content-manager.document-metadata
plugin::content-manager.document-manager
plugin::content-manager.field-sizes
plugin::content-manager.metrics
plugin::content-manager.permission-checker
plugin::content-manager.permission
plugin::content-manager.populate-builder
plugin::content-manager.uid
plugin::content-type-builder.content-types
plugin::content-type-builder.components
plugin::content-type-builder.component-categories
plugin::content-type-builder.builder
plugin::content-type-builder.api-handler
plugin::email.email
plugin::upload.provider
plugin::upload.upload
plugin::upload.folder
plugin::upload.file
plugin::upload.weeklyMetrics
plugin::upload.metrics
plugin::upload.image-manipulation
plugin::upload.api-upload-folder
plugin::upload.extensions
plugin::i18n.permissions
plugin::i18n.metrics
plugin::i18n.localizations
plugin::i18n.locales
plugin::i18n.iso-locales
plugin::i18n.content-types
plugin::documentation.documentation
plugin::documentation.override
plugin::graphql.builders
plugin::graphql.content-api
plugin::graphql.constants
plugin::graphql.extension
plugin::graphql.format
plugin::graphql.internals
plugin::graphql.type-registry
plugin::graphql.utils
plugin::users-permissions.jwt
plugin::users-permissions.providers
plugin::users-permissions.providers-registry
plugin::users-permissions.role
plugin::users-permissions.user
plugin::users-permissions.users-permissions
plugin::users-permissions.permission
api::category.category
api::complex.complex
api::config.config
api::single-type-localized.single-type-localized
api::single-type-non-local.single-type-non-local
api::single-type-unpublished.single-type-unpublished
admin::auth
admin::user
admin::role
admin::passport
admin::token
admin::permission
admin::metrics
admin::content-type
admin::constants
admin::condition
admin::action
admin::api-token
admin::transfer
admin::project-settings
`;
utils.helpers.expectConsoleLinesToInclude(output, expected);

View File

@ -15,6 +15,7 @@ describe('--version', () => {
appPath = testApps.at(0);
});
// TODO: check that it matches the version listed in the test app package.json
it('should output version with argument', async () => {
const { stdout } = await coffee
.spawn('npm', ['run', '-s', 'strapi', '--', 'version'], { cwd: appPath })

View File

@ -274,7 +274,7 @@ yargs
const currentTestApps = await fs.readdir(testAppDirectory);
if (currentTestApps.length === 0) {
console.log('No test apps to clean');
console.log('No CLI test apps to clean');
return;
}

View File

@ -286,7 +286,7 @@ module.exports = config
const currentTestApps = await fs.readdir(testAppDirectory);
if (currentTestApps.length === 0) {
console.log('No test apps to clean');
console.log('No e2e test apps to clean');
return;
}