mirror of
https://github.com/serverless/serverless.git
synced 2026-01-18 14:58:43 +00:00
126 lines
3.5 KiB
JavaScript
126 lines
3.5 KiB
JavaScript
'use strict';
|
|
|
|
const { expect } = require('chai');
|
|
const path = require('path');
|
|
const fse = require('fs-extra');
|
|
|
|
const generatePayload = require('../../../../../lib/utils/analytics/generatePayload');
|
|
const runServerless = require('../../../../utils/run-serverless');
|
|
const fixtures = require('../../../../fixtures');
|
|
|
|
const versions = {
|
|
'serverless': require('../../../../../package').version,
|
|
'@serverless/enterprise-plugin': require('@serverless/enterprise-plugin/package').version,
|
|
};
|
|
|
|
describe('lib/utils/analytics/generatePayload', () => {
|
|
it('Should resolve payload for AWS service', async () => {
|
|
const { servicePath } = await fixtures.setup('httpApi');
|
|
await fse.writeFile(
|
|
path.resolve(servicePath, 'package.json'),
|
|
JSON.stringify({
|
|
dependencies: {
|
|
fooDep: '1',
|
|
barDep: '2',
|
|
},
|
|
optionalDependencies: {
|
|
fooOpt: '1',
|
|
fooDep: '1',
|
|
},
|
|
devDependencies: {
|
|
someDev: '1',
|
|
otherDev: '1',
|
|
},
|
|
})
|
|
);
|
|
|
|
const { serverless } = await runServerless({
|
|
cwd: servicePath,
|
|
cliArgs: ['-v'],
|
|
});
|
|
const payload = await generatePayload(serverless);
|
|
expect(payload).to.deep.equal({
|
|
cliName: 'serverless',
|
|
config: {
|
|
provider: {
|
|
name: 'aws',
|
|
runtime: 'nodejs12.x',
|
|
stage: 'dev',
|
|
region: 'us-east-1',
|
|
},
|
|
plugins: [],
|
|
functions: [
|
|
{ runtime: 'nodejs12.x', events: [{ type: 'httpApi' }, { type: 'httpApi' }] },
|
|
{ runtime: 'nodejs12.x', events: [{ type: 'httpApi' }] },
|
|
],
|
|
},
|
|
isAutoUpdateEnabled: false,
|
|
isTabAutocompletionInstalled: false,
|
|
npmDependencies: ['fooDep', 'barDep', 'fooOpt', 'someDev', 'otherDev'],
|
|
triggeredDeprecations: [],
|
|
installationType: 'global:other',
|
|
isDashboardEnabled: false,
|
|
versions,
|
|
});
|
|
});
|
|
|
|
it('Should resolve payload for custom provider service', async () => {
|
|
const { serverless } = await runServerless({
|
|
fixture: 'customProvider',
|
|
cliArgs: ['config'],
|
|
});
|
|
const payload = await generatePayload(serverless);
|
|
expect(payload).to.deep.equal({
|
|
cliName: 'serverless',
|
|
config: {
|
|
provider: {
|
|
name: 'customProvider',
|
|
runtime: 'foo',
|
|
stage: 'dev',
|
|
region: undefined,
|
|
},
|
|
plugins: ['./customProvider'],
|
|
functions: [
|
|
{ runtime: 'foo', events: [{ type: 'someEvent' }] },
|
|
{ runtime: 'bar', events: [] },
|
|
],
|
|
},
|
|
isAutoUpdateEnabled: false,
|
|
isTabAutocompletionInstalled: false,
|
|
npmDependencies: [],
|
|
triggeredDeprecations: [],
|
|
installationType: 'global:other',
|
|
isDashboardEnabled: false,
|
|
versions,
|
|
});
|
|
});
|
|
|
|
it('Should recognize local fallback', async () => {
|
|
const { serverless } = await runServerless({
|
|
fixture: 'locallyInstalledServerless',
|
|
cliArgs: ['config'],
|
|
});
|
|
const payload = await generatePayload(serverless);
|
|
expect(payload).to.deep.equal({
|
|
cliName: 'serverless',
|
|
config: {
|
|
provider: {
|
|
name: 'aws',
|
|
runtime: 'nodejs12.x',
|
|
stage: 'dev',
|
|
region: 'us-east-1',
|
|
},
|
|
plugins: [],
|
|
functions: [],
|
|
},
|
|
isAutoUpdateEnabled: false,
|
|
isTabAutocompletionInstalled: false,
|
|
npmDependencies: [],
|
|
triggeredDeprecations: [],
|
|
installationType: 'local:fallback',
|
|
isDashboardEnabled: false,
|
|
versions,
|
|
});
|
|
});
|
|
});
|