Skip to content

Commit f4d78db

Browse files
authored
Merge pull request #92 from tomyitav/inner-service-bug-fix
Inner service bug fix
2 parents 30cd136 + 21c3865 commit f4d78db

File tree

8 files changed

+325
-223
lines changed

8 files changed

+325
-223
lines changed

package-lock.json

Lines changed: 226 additions & 221 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@
120120
"husky": "1.3.1",
121121
"jest": "24.0.0",
122122
"jest-config": "24.0.0",
123-
"lint-staged": "8.1.2",
123+
"lint-staged": "8.1.3",
124124
"lodash.camelcase": "4.3.0",
125125
"prettier": "1.16.3",
126126
"prompt": "1.0.0",

src/commands/service/service.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,10 @@ export class Service extends AbstractCommand {
160160
}
161161

162162
private getServiceClassName(servicePath: string) {
163-
return _.startCase(path.parse(servicePath).base.split('.')[0]) + serviceFileNameSuffix
163+
return (
164+
_.startCase(path.parse(servicePath).base.split('.')[0]).replace(/\W/g, '') +
165+
serviceFileNameSuffix
166+
)
164167
}
165168

166169
private async modifyServiceDefinitionFile(

test/commands/service/service.test.ts

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ describe('test for service command', () => {
1414
const projectOneMissingFile = 'project-with-one-missing-file'
1515
const projectMissingServicesDir = 'project-with-no-services-dir'
1616
const projectLegalFilesNameInner = 'project-with-legal-files-inner-dir'
17+
const projectLegalFilesNameInnerDash = 'project-with-legal-files-inner-dash-dir'
1718
const project2InnerDirs = 'project-with-2-inner-dirs'
1819
const cmdForCommandUndefined: ActionCmd = {
1920
parent: {
@@ -362,6 +363,49 @@ describe('test for service command', () => {
362363
compareTestFilesByPaths(pathToActualContextInterface, pathToExpectedContextInterface)
363364
})
364365

366+
it('Should update files after service command action inner dir in dash format', async () => {
367+
const actualDirToCreate = path.join(pathToActualDirectory, projectLegalFilesNameInnerDash)
368+
fse.mkdirsSync(actualDirToCreate)
369+
fse.copySync(absPathToProjectWithLegalFile, actualDirToCreate)
370+
process.chdir(actualDirToCreate)
371+
const act = service.getAction()
372+
await act('/inner/dir/dash-car.ts', cmdForCommandUndefined)
373+
const pathToExpectedService = path.join(
374+
pathToExpectedDirectory,
375+
projectLegalFilesNameInnerDash,
376+
'src/services/inner/dir/dash-car.ts'
377+
)
378+
const pathToActualService = path.join(actualDirToCreate, 'src/services/inner/dir/dash-car.ts')
379+
compareTestFilesByPaths(pathToActualService, pathToExpectedService)
380+
381+
const pathToExpectedInjector = path.join(
382+
pathToExpectedDirectory,
383+
projectLegalFilesNameInnerDash,
384+
'src/core/injector.ts'
385+
)
386+
const pathToActualInjector = path.join(actualDirToCreate, 'src/core/injector.ts')
387+
compareTestFilesByPaths(pathToActualInjector, pathToExpectedInjector)
388+
389+
const pathToExpectedContext = path.join(
390+
pathToExpectedDirectory,
391+
projectLegalFilesNameInnerDash,
392+
'src/context.ts'
393+
)
394+
const pathToActualContext = path.join(actualDirToCreate, 'src/context.ts')
395+
compareTestFilesByPaths(pathToActualContext, pathToExpectedContext)
396+
397+
const pathToExpectedContextInterface = path.join(
398+
pathToExpectedDirectory,
399+
projectLegalFilesNameInnerDash,
400+
'src/interfaces/IAppContext.ts'
401+
)
402+
const pathToActualContextInterface = path.join(
403+
actualDirToCreate,
404+
'src/interfaces/IAppContext.ts'
405+
)
406+
compareTestFilesByPaths(pathToActualContextInterface, pathToExpectedContextInterface)
407+
})
408+
365409
it('Should not override existing service file', async () => {
366410
const pathToExistingServiceDir = path.join(
367411
pathToExpectedDirectory,
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { Injector } from 'injection-js'
2+
import { IAppContext } from './interfaces/IAppContext'
3+
import { TrainsService } from './services/trains/TrainsService'
4+
import { AbstractPubsubManager } from './graphql/subscriptions/Pubsub/AbstractPubsubManager'
5+
import { DashCarService } from '@src/services/inner/dir/dash-car'
6+
7+
export function getContext(injector: Injector): IAppContext {
8+
return {
9+
dashCarService: injector.get(DashCarService),
10+
pubsubManager: injector.get(AbstractPubsubManager),
11+
trainsService: injector.get(TrainsService)
12+
}
13+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import { Injector, ReflectiveInjector } from 'injection-js'
2+
import 'reflect-metadata'
3+
import 'zone.js'
4+
import { AbstractPubsubManager } from '../graphql/subscriptions/Pubsub/AbstractPubsubManager'
5+
import { PubsubManager } from '../graphql/subscriptions/Pubsub/PubsubManager'
6+
import { TrainsService } from '../services/trains/TrainsService'
7+
import { Server } from '../server'
8+
import { AbstractSetting } from './config/AbstractSetting'
9+
import { Setting } from './config/Setting'
10+
import { AbstractLogger } from './logger/AbstractLogger'
11+
import { Logger } from './logger/Logger'
12+
import { DashCarService } from '@src/services/inner/dir/dash-car'
13+
14+
const injector: Injector = ReflectiveInjector.resolveAndCreate([
15+
DashCarService,
16+
{ provide: AbstractLogger, useClass: Logger },
17+
{ provide: AbstractSetting, useClass: Setting },
18+
{ provide: AbstractPubsubManager, useClass: PubsubManager },
19+
Server,
20+
TrainsService
21+
])
22+
23+
export default injector
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import { AbstractPubsubManager } from '../graphql/subscriptions/Pubsub/AbstractPubsubManager'
2+
import { TrainsService } from '../services/trains/TrainsService'
3+
import { DashCarService } from '@src/services/inner/dir/dash-car'
4+
5+
export interface IAppContext {
6+
dashCarService: DashCarService
7+
pubsubManager: AbstractPubsubManager
8+
trainsService: TrainsService
9+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import {Injectable} from 'injection-js'
2+
3+
@Injectable()
4+
export class DashCarService {
5+
}

0 commit comments

Comments
 (0)