Skip to content

Commit

Permalink
fix: respect singular command flag to create singular controller
Browse files Browse the repository at this point in the history
Closes: #4382
  • Loading branch information
thetutlage committed Feb 5, 2024
1 parent 004ac5c commit 05d23e8
Show file tree
Hide file tree
Showing 7 changed files with 119 additions and 8 deletions.
1 change: 1 addition & 0 deletions commands/make/controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ export default class MakeController extends BaseCommand {
flags: this.parsed.flags,
actions: this.actions?.map((action) => string.camelCase(action)),
entity: this.app.generators.createEntity(this.name),
singular: this.singular,
})
}
}
4 changes: 2 additions & 2 deletions stubs/make/controller/actions.stub
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{{#var controllerName = generators.controllerName(entity.name)}}
{{#var controllerFileName = generators.controllerFileName(entity.name)}}
{{#var controllerName = generators.controllerName(entity.name, singular)}}
{{#var controllerFileName = generators.controllerFileName(entity.name, singular)}}
{{{
exports({
to: app.httpControllersPath(entity.path, controllerFileName)
Expand Down
4 changes: 2 additions & 2 deletions stubs/make/controller/api.stub
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{{#var controllerName = generators.controllerName(entity.name)}}
{{#var controllerFileName = generators.controllerFileName(entity.name)}}
{{#var controllerName = generators.controllerName(entity.name, singular)}}
{{#var controllerFileName = generators.controllerFileName(entity.name, singular)}}
{{{
exports({
to: app.httpControllersPath(entity.path, controllerFileName)
Expand Down
4 changes: 2 additions & 2 deletions stubs/make/controller/main.stub
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{{#var controllerName = generators.controllerName(entity.name)}}
{{#var controllerFileName = generators.controllerFileName(entity.name)}}
{{#var controllerName = generators.controllerName(entity.name, singular)}}
{{#var controllerFileName = generators.controllerFileName(entity.name, singular)}}
{{{
exports({
to: app.httpControllersPath(entity.path, controllerFileName)
Expand Down
4 changes: 2 additions & 2 deletions stubs/make/controller/resource.stub
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{{#var controllerName = generators.controllerName(entity.name)}}
{{#var controllerFileName = generators.controllerFileName(entity.name)}}
{{#var controllerName = generators.controllerName(entity.name, singular)}}
{{#var controllerFileName = generators.controllerFileName(entity.name, singular)}}
{{{
exports({
to: app.httpControllersPath(entity.path, controllerFileName)
Expand Down
106 changes: 106 additions & 0 deletions tests/commands/make_controller.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ test.group('Make controller', () => {

const { contents } = await new StubsFactory().prepare('make/controller/main.stub', {
entity: ace.app.generators.createEntity('user'),
singular: false,
})

await assert.fileEquals('app/controllers/users_controller.ts', contents)
Expand Down Expand Up @@ -66,6 +67,7 @@ test.group('Make controller', () => {

const { contents } = await new StubsFactory().prepare('make/controller/resource.stub', {
entity: ace.app.generators.createEntity('user'),
singular: false,
})

await assert.fileEquals('app/controllers/users_controller.ts', contents)
Expand All @@ -88,6 +90,7 @@ test.group('Make controller', () => {

const { contents } = await new StubsFactory().prepare('make/controller/api.stub', {
entity: ace.app.generators.createEntity('user'),
singular: false,
})

await assert.fileEquals('app/controllers/users_controller.ts', contents)
Expand All @@ -113,6 +116,7 @@ test.group('Make controller', () => {

const { contents } = await new StubsFactory().prepare('make/controller/api.stub', {
entity: ace.app.generators.createEntity('user'),
singular: false,
})

await assert.fileEquals('app/controllers/users_controller.ts', contents)
Expand Down Expand Up @@ -145,6 +149,7 @@ test.group('Make controller', () => {

const { contents } = await new StubsFactory().prepare('make/controller/actions.stub', {
entity: ace.app.generators.createEntity('user'),
singular: false,
actions: ['index', 'show', 'deleteProfile'],
})

Expand Down Expand Up @@ -174,6 +179,7 @@ test.group('Make controller', () => {

const { contents } = await new StubsFactory().prepare('make/controller/actions.stub', {
entity: ace.app.generators.createEntity('user'),
singular: false,
actions: ['index', 'show', 'deleteProfile'],
})

Expand Down Expand Up @@ -208,6 +214,7 @@ test.group('Make controller', () => {

const { contents } = await new StubsFactory().prepare('make/controller/actions.stub', {
entity: ace.app.generators.createEntity('user'),
singular: false,
actions: ['index', 'show', 'deleteProfile'],
})

Expand All @@ -228,4 +235,103 @@ test.group('Make controller', () => {
},
])
})

test('create singular controller', async ({ assert, fs }) => {
const ace = await new AceFactory().make(fs.baseUrl)
await ace.app.init()
ace.ui.switchMode('raw')

const command = await ace.create(MakeControllerCommand, ['user', '-s'])
await command.exec()

const { contents } = await new StubsFactory().prepare('make/controller/main.stub', {
entity: ace.app.generators.createEntity('user'),
singular: true,
})

await assert.fileEquals('app/controllers/user_controller.ts', contents)

assert.deepEqual(ace.ui.logger.getLogs(), [
{
message: 'green(DONE:) create app/controllers/user_controller.ts',
stream: 'stdout',
},
])
})

test('create singular resource controller', async ({ assert, fs }) => {
const ace = await new AceFactory().make(fs.baseUrl)
await ace.app.init()
ace.ui.switchMode('raw')

const command = await ace.create(MakeControllerCommand, ['user', '--resource', '-s'])
await command.exec()

const { contents } = await new StubsFactory().prepare('make/controller/resource.stub', {
entity: ace.app.generators.createEntity('user'),
singular: true,
})

await assert.fileEquals('app/controllers/user_controller.ts', contents)

assert.deepEqual(ace.ui.logger.getLogs(), [
{
message: 'green(DONE:) create app/controllers/user_controller.ts',
stream: 'stdout',
},
])
})

test('create singular controller with actions', async ({ assert, fs }) => {
const ace = await new AceFactory().make(fs.baseUrl)
await ace.app.init()
ace.ui.switchMode('raw')

const command = await ace.create(MakeControllerCommand, [
'user',
'index',
'show',
'delete-profile',
'-s',
])
await command.exec()

const { contents } = await new StubsFactory().prepare('make/controller/actions.stub', {
entity: ace.app.generators.createEntity('user'),
actions: ['index', 'show', 'deleteProfile'],
singular: true,
})

await assert.fileEquals('app/controllers/user_controller.ts', contents)

assert.deepEqual(ace.ui.logger.getLogs(), [
{
message: 'green(DONE:) create app/controllers/user_controller.ts',
stream: 'stdout',
},
])
})

test('create singular api controller', async ({ assert, fs }) => {
const ace = await new AceFactory().make(fs.baseUrl)
await ace.app.init()
ace.ui.switchMode('raw')

const command = await ace.create(MakeControllerCommand, ['user', '--api', '-s'])
await command.exec()

const { contents } = await new StubsFactory().prepare('make/controller/api.stub', {
entity: ace.app.generators.createEntity('user'),
singular: true,
})

await assert.fileEquals('app/controllers/user_controller.ts', contents)

assert.deepEqual(ace.ui.logger.getLogs(), [
{
message: 'green(DONE:) create app/controllers/user_controller.ts',
stream: 'stdout',
},
])
})
})
4 changes: 4 additions & 0 deletions tests/stubs/make_controller.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ test.group('Make controller', () => {
})
const { contents, destination } = await stub.prepare({
entity: app.generators.createEntity('user'),
singular: false,
})

assert.equal(destination, join(BASE_PATH, 'app/controllers/users_controller.ts'))
Expand All @@ -47,6 +48,7 @@ test.group('Make controller', () => {
})
const { contents, destination } = await stub.prepare({
entity: app.generators.createEntity('user'),
singular: false,
})

assert.equal(destination, join(BASE_PATH, 'app/controllers/users_controller.ts'))
Expand All @@ -72,6 +74,7 @@ test.group('Make controller', () => {
})
const { contents, destination } = await stub.prepare({
entity: app.generators.createEntity('user'),
singular: false,
})

assert.equal(destination, join(BASE_PATH, 'app/controllers/users_controller.ts'))
Expand All @@ -97,6 +100,7 @@ test.group('Make controller', () => {
})
const { contents, destination } = await stub.prepare({
entity: app.generators.createEntity('user'),
singular: false,
actions: ['index', 'show', 'deleteProfile'],
})

Expand Down

0 comments on commit 05d23e8

Please sign in to comment.