mirror of
https://github.com/serverless/serverless.git
synced 2025-12-08 19:46:03 +00:00
178 lines
7.9 KiB
JavaScript
178 lines
7.9 KiB
JavaScript
'use strict';
|
|
|
|
const expect = require('chai').expect;
|
|
const anonymizeStacktracePaths = require('../../../../../lib/utils/telemetry/anonymize-stacktrace-paths');
|
|
|
|
describe('test/unit/lib/utils/anonymize-stacktrace-paths.test.js', () => {
|
|
if (process.platform !== 'win32') {
|
|
it('Should remove common prefix up to last `serverless` occurence', () => {
|
|
const stacktracePaths = [
|
|
'/home/xxx/serverless/yyy/zzz-serverless/serverless/lib/plugins/aws/package/lib/getHashForFilePath.js:23:13',
|
|
'/home/xxx/serverless/yyy/zzz-serverless/serverless/lib/plugins/otherfile.js:100:10',
|
|
'/home/xxx/serverless/yyy/zzz-serverless/serverless/lib/plugins/another.js:100:10',
|
|
];
|
|
|
|
const result = anonymizeStacktracePaths(stacktracePaths);
|
|
expect(result).to.deep.equal([
|
|
'/serverless/lib/plugins/aws/package/lib/getHashForFilePath.js:23:13',
|
|
'/serverless/lib/plugins/otherfile.js:100:10',
|
|
'/serverless/lib/plugins/another.js:100:10',
|
|
]);
|
|
});
|
|
|
|
it('Should leave relative paths unaltered and do not consider them for common prefix', () => {
|
|
const stacktracePaths = [
|
|
'/home/xxx/serverless/yyy/zzz-serverless/serverless/lib/plugins/aws/package/lib/getHashForFilePath.js:23:13',
|
|
'/home/xxx/serverless/yyy/zzz-serverless/serverless/lib/plugins/otherfile.js:100:10',
|
|
'somefile.js:100:10',
|
|
'another.js:100:10',
|
|
];
|
|
|
|
const result = anonymizeStacktracePaths(stacktracePaths);
|
|
expect(result).to.deep.equal([
|
|
'/serverless/lib/plugins/aws/package/lib/getHashForFilePath.js:23:13',
|
|
'/serverless/lib/plugins/otherfile.js:100:10',
|
|
'somefile.js:100:10',
|
|
'another.js:100:10',
|
|
]);
|
|
});
|
|
|
|
it('Should remove common prefix if `/serverless/` or `/node_modules/` not found in path', () => {
|
|
const stacktracePaths = [
|
|
'/home/xxx/yyy/zzz-serverless/lib/plugins/aws/package/lib/getHashForFilePath.js:23:13',
|
|
'/home/xxx/yyy/zzz-serverless/lib/plugins/otherfile.js:100:10',
|
|
'/home/xxx/yyy/zzz-serverless/lib/plugins/another.js:100:10',
|
|
];
|
|
|
|
const result = anonymizeStacktracePaths(stacktracePaths);
|
|
expect(result).to.deep.equal([
|
|
'/aws/package/lib/getHashForFilePath.js:23:13',
|
|
'/otherfile.js:100:10',
|
|
'/another.js:100:10',
|
|
]);
|
|
});
|
|
|
|
it('Should remove common prefix up to last `node_modules` occurence if `serverless` not found', () => {
|
|
const stacktracePaths = [
|
|
'/home/xxx/yyy/zzz-serverless/node_modules/lib/plugins/aws/package/lib/getHashForFilePath.js:23:13',
|
|
'/home/xxx/yyy/zzz-serverless/node_modules/lib/plugins/otherfile.js:100:10',
|
|
'/home/xxx/yyy/zzz-serverless/node_modules/lib/plugins/another.js:100:10',
|
|
];
|
|
|
|
const result = anonymizeStacktracePaths(stacktracePaths);
|
|
expect(result).to.deep.equal([
|
|
'/lib/plugins/aws/package/lib/getHashForFilePath.js:23:13',
|
|
'/lib/plugins/otherfile.js:100:10',
|
|
'/lib/plugins/another.js:100:10',
|
|
]);
|
|
});
|
|
|
|
it('Should strip same following file paths', () => {
|
|
const stacktracePaths = [
|
|
'/home/xxx/yyy/zzz-serverless/node_modules/lib/plugins/aws/package/lib/getHashForFilePath.js:23:13',
|
|
'/home/xxx/yyy/zzz-serverless/node_modules/lib/plugins/aws/package/lib/getHashForFilePath.js:3:3',
|
|
'/home/xxx/yyy/zzz-serverless/node_modules/lib/plugins/otherfile.js:100:10',
|
|
'/home/xxx/yyy/zzz-serverless/node_modules/lib/plugins/another.js:100:10',
|
|
'/home/xxx/yyy/zzz-serverless/node_modules/lib/plugins/another.js:4:12',
|
|
];
|
|
|
|
const result = anonymizeStacktracePaths(stacktracePaths);
|
|
expect(result).to.deep.equal([
|
|
'/lib/plugins/aws/package/lib/getHashForFilePath.js:23:13',
|
|
'^:3:3',
|
|
'/lib/plugins/otherfile.js:100:10',
|
|
'/lib/plugins/another.js:100:10',
|
|
'^:4:12',
|
|
]);
|
|
});
|
|
}
|
|
|
|
it('Should handle stacktrace with only relative paths', () => {
|
|
const stacktracePaths = ['somefile.js:100:10', 'another.js:100:10'];
|
|
|
|
const result = anonymizeStacktracePaths(stacktracePaths);
|
|
expect(result).to.deep.equal(['somefile.js:100:10', 'another.js:100:10']);
|
|
});
|
|
|
|
if (process.platform === 'win32') {
|
|
it('Should remove common prefix up to last `serverless` occurence for windows-style paths', () => {
|
|
const stacktracePaths = [
|
|
'C:\\home\\xxx\\serverless\\yyy\\zzz-serverless\\serverless\\lib\\plugins\\aws\\package\\lib\\getHashForFilePath.js:23:13',
|
|
'C:\\home\\xxx\\serverless\\yyy\\zzz-serverless\\serverless\\lib\\plugins\\otherfile.js:100:10',
|
|
'C:\\home\\xxx\\serverless\\yyy\\zzz-serverless\\serverless\\lib\\plugins\\another.js:100:10',
|
|
];
|
|
|
|
const result = anonymizeStacktracePaths(stacktracePaths);
|
|
expect(result).to.deep.equal([
|
|
'\\serverless\\lib\\plugins\\aws\\package\\lib\\getHashForFilePath.js:23:13',
|
|
'\\serverless\\lib\\plugins\\otherfile.js:100:10',
|
|
'\\serverless\\lib\\plugins\\another.js:100:10',
|
|
]);
|
|
});
|
|
|
|
it('Should remove common prefix up to last `serverless` occurence for windows-style paths', () => {
|
|
const stacktracePaths = [
|
|
'C:\\home\\xxx\\serverless\\yyy\\zzz-serverless\\serverless\\lib\\plugins\\aws\\package\\lib\\getHashForFilePath.js:23:13',
|
|
'C:\\home\\xxx\\serverless\\yyy\\zzz-serverless\\serverless\\lib\\plugins\\otherfile.js:100:10',
|
|
'another.js:100:10',
|
|
];
|
|
|
|
const result = anonymizeStacktracePaths(stacktracePaths);
|
|
expect(result).to.deep.equal([
|
|
'\\serverless\\lib\\plugins\\aws\\package\\lib\\getHashForFilePath.js:23:13',
|
|
'\\serverless\\lib\\plugins\\otherfile.js:100:10',
|
|
'another.js:100:10',
|
|
]);
|
|
});
|
|
|
|
it('Should remove common prefix if `\\serverless\\` not found in path', () => {
|
|
const stacktracePaths = [
|
|
'C:\\home\\xxx\\yyy\\zzz-serverless\\lib\\plugins\\aws\\package\\lib\\getHashForFilePath.js:23:13',
|
|
'C:\\home\\xxx\\yyy\\zzz-serverless\\lib\\plugins\\otherfile.js:100:10',
|
|
'C:\\home\\xxx\\yyy\\zzz-serverless\\lib\\plugins\\another.js:100:10',
|
|
];
|
|
|
|
const result = anonymizeStacktracePaths(stacktracePaths);
|
|
expect(result).to.deep.equal([
|
|
'\\aws\\package\\lib\\getHashForFilePath.js:23:13',
|
|
'\\otherfile.js:100:10',
|
|
'\\another.js:100:10',
|
|
]);
|
|
});
|
|
|
|
it('Should remove common prefix up to last `node_modules` occurence if `serverless` not found', () => {
|
|
const stacktracePaths = [
|
|
'C:\\home\\xxx\\yyy\\zzz-serverless\\node_modules\\lib\\plugins\\aws\\package\\lib\\getHashForFilePath.js:23:13',
|
|
'C:\\home\\xxx\\yyy\\zzz-serverless\\node_modules\\lib\\plugins\\otherfile.js:100:10',
|
|
'C:\\home\\xxx\\yyy\\zzz-serverless\\node_modules\\lib\\plugins\\another.js:100:10',
|
|
];
|
|
|
|
const result = anonymizeStacktracePaths(stacktracePaths);
|
|
expect(result).to.deep.equal([
|
|
'\\lib\\plugins\\aws\\package\\lib\\getHashForFilePath.js:23:13',
|
|
'\\lib\\plugins\\otherfile.js:100:10',
|
|
'\\lib\\plugins\\another.js:100:10',
|
|
]);
|
|
});
|
|
|
|
it('Should strip same following file paths', () => {
|
|
const stacktracePaths = [
|
|
'C:\\home\\xxx\\yyy\\zzz-serverless\\node_modules\\lib\\plugins\\aws\\package\\lib\\getHashForFilePath.js:23:13',
|
|
'C:\\home\\xxx\\yyy\\zzz-serverless\\node_modules\\lib\\plugins\\aws\\package\\lib\\getHashForFilePath.js:3:3',
|
|
'C:\\home\\xxx\\yyy\\zzz-serverless\\node_modules\\lib\\plugins\\otherfile.js:100:10',
|
|
'C:\\home\\xxx\\yyy\\zzz-serverless\\node_modules\\lib\\plugins\\another.js:100:10',
|
|
'C:\\home\\xxx\\yyy\\zzz-serverless\\node_modules\\lib\\plugins\\another.js:4:12',
|
|
];
|
|
|
|
const result = anonymizeStacktracePaths(stacktracePaths);
|
|
expect(result).to.deep.equal([
|
|
'\\lib\\plugins\\aws\\package\\lib\\getHashForFilePath.js:23:13',
|
|
'^:3:3',
|
|
'\\lib\\plugins\\otherfile.js:100:10',
|
|
'\\lib\\plugins\\another.js:100:10',
|
|
'^:4:12',
|
|
]);
|
|
});
|
|
}
|
|
});
|