mirror of
https://github.com/serverless/serverless.git
synced 2025-12-08 19:46:03 +00:00
63 lines
2.0 KiB
JavaScript
63 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');
|
|
});
|
|
});
|