2024-05-29 11:51:04 -04:00

72 lines
2.0 KiB
JavaScript

'use strict'
const chai = require('chai')
const fsp = require('fs').promises
const path = require('path')
const fse = require('fs-extra')
const { getTmpDirPath } = require('../../../../utils/fs')
const runServerless = require('../../../../utils/run-serverless')
chai.use(require('chai-as-promised'))
const { expect } = require('chai')
const fixturesPath = path.resolve(
__dirname,
'../../../../fixtures/programmatic',
)
describe('test/unit/lib/plugins/create/create.test.js', () => {
it('should generate scaffolding for local template in provided path and rename service', async () => {
const tmpDir = getTmpDirPath()
await runServerless({
noService: true,
command: 'create',
options: {
'template-path': path.join(fixturesPath, 'aws'),
path: tmpDir,
name: 'new-service-name',
},
})
const dirContent = await fsp.readdir(tmpDir)
expect(dirContent).to.include('serverless.yml')
const serverlessYmlfileContent = (
await fsp.readFile(path.join(tmpDir, 'serverless.yml'))
).toString()
expect(serverlessYmlfileContent).to.include('service: new-service-name')
})
it('should error out when trying to create project in already existing directory (other than current working dir)', async () => {
const tmpDir = getTmpDirPath()
await fse.ensureDir(tmpDir)
await expect(
runServerless({
noService: true,
command: 'create',
options: {
template: 'aws-nodejs',
path: tmpDir,
},
}),
).to.eventually.be.rejected.and.have.property(
'code',
'TARGET_FOLDER_ALREADY_EXISTS',
)
})
it('should error out when trying to create project from nonexistent template', async () => {
await expect(
runServerless({
noService: true,
command: 'create',
options: {
template: 'aws-nodejs-nonexistent',
},
}),
).to.eventually.be.rejected.and.have.property(
'code',
'NOT_SUPPORTED_TEMPLATE',
)
})
})