mirror of
https://github.com/serverless/serverless.git
synced 2025-12-08 19:46:03 +00:00
82 lines
2.7 KiB
JavaScript
82 lines
2.7 KiB
JavaScript
'use strict'
|
|
|
|
const path = require('path')
|
|
const fsp = require('fs').promises
|
|
const fse = require('fs-extra')
|
|
const spawn = require('child-process-ext/spawn')
|
|
const { getTmpDirPath } = require('../utils/fs')
|
|
const { expect } = require('chai')
|
|
|
|
const serverlessExec = require('../serverless-binary')
|
|
|
|
describe('test/integration/create.test.js', function () {
|
|
this.timeout(1000 * 60 * 2)
|
|
|
|
it('should generate scaffolding for "aws-nodejs" template in provided path and rename service', async () => {
|
|
const tmpDir = getTmpDirPath()
|
|
await spawn(serverlessExec, [
|
|
'create',
|
|
'--template',
|
|
'aws-nodejs',
|
|
'--path',
|
|
tmpDir,
|
|
'--name',
|
|
'new-service-name',
|
|
])
|
|
const dirContent = await fsp.readdir(tmpDir)
|
|
expect(dirContent).to.include('handler.js')
|
|
expect(dirContent).to.include('serverless.yml')
|
|
expect(dirContent).to.include('.gitignore')
|
|
|
|
const serverlessYmlfileContent = (
|
|
await fsp.readFile(path.join(tmpDir, 'serverless.yml'))
|
|
).toString()
|
|
expect(serverlessYmlfileContent).to.include('service: new-service-name')
|
|
})
|
|
|
|
it('should generate scaffolding for "aws-nodejs" template in current directory', async () => {
|
|
const tmpDir = getTmpDirPath()
|
|
await fse.ensureDir(tmpDir)
|
|
await spawn(serverlessExec, ['create', '--template', 'aws-nodejs'], {
|
|
cwd: tmpDir,
|
|
})
|
|
const dirContent = await fsp.readdir(tmpDir)
|
|
expect(dirContent).to.include('handler.js')
|
|
expect(dirContent).to.include('serverless.yml')
|
|
expect(dirContent).to.include('.gitignore')
|
|
|
|
const serverlessYmlfileContent = (
|
|
await fsp.readFile(path.join(tmpDir, 'serverless.yml'))
|
|
).toString()
|
|
// We are checking that it includes basename of dir as it will be included in service name
|
|
expect(serverlessYmlfileContent).to.include(path.basename(tmpDir))
|
|
})
|
|
|
|
it('should generate scaffolding for "plugin" template', async () => {
|
|
const tmpDir = getTmpDirPath()
|
|
await fse.ensureDir(tmpDir)
|
|
await spawn(serverlessExec, ['create', '--template', 'plugin'], {
|
|
cwd: tmpDir,
|
|
})
|
|
const dirContent = await fsp.readdir(tmpDir)
|
|
expect(dirContent).to.include('index.js')
|
|
expect(dirContent).to.include('README.md')
|
|
expect(dirContent).to.include('package.json')
|
|
})
|
|
|
|
it('should error out when trying to create project in current working dir and the project files are already present in it', async () => {
|
|
const tmpDir = getTmpDirPath()
|
|
await fse.ensureDir(tmpDir)
|
|
await fsp.writeFile(path.join(tmpDir, 'handler.js'), '')
|
|
let err
|
|
try {
|
|
await spawn(serverlessExec, ['create', '--template', 'aws-nodejs'], {
|
|
cwd: tmpDir,
|
|
})
|
|
} catch (e) {
|
|
err = e
|
|
}
|
|
expect(err.stdoutBuffer.toString()).to.contain('Move it and try again')
|
|
})
|
|
})
|