serverless-content-encoding
Version:
A serverless plugin to enable [Content Encoding feature in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-gzip-compression-decompression.html) for lambda function response compression.
59 lines (47 loc) • 1.99 kB
JavaScript
const Serverless = require('serverless');
const AwsProvider = require('serverless/lib/plugins/aws/provider/awsProvider');
const ContentEncodingPlugin = require('../src/index');
const sinon = require('sinon');
describe('Serverless content encoding', () => {
let serverless;
let options;
let minimumCompressionSize;
let sandbox;
beforeEach(() => {
sandbox = sinon.createSandbox();
options = {
stage: 'production',
region: 'ap-southeast-2',
};
serverless = new Serverless(options);
minimumCompressionSize = 3000;
serverless.setProvider('aws', new AwsProvider(serverless, options));
serverless.service.custom = { contentEncoding: { minimumCompressionSize } };
serverless.service.provider = { name: 'aws', stage: 'production' };
serverless.service.service = 'test';
serverless.processedInput = { options: {} };
serverless.cli = { log: () => {} };
});
afterEach(() => {
sandbox.restore();
});
it('should initialize without options', () => {
const contentEncodingPlugin = new ContentEncodingPlugin(serverless);
expect(contentEncodingPlugin.serverless).toBeInstanceOf(Serverless);
expect(contentEncodingPlugin.options).toEqual({});
});
it('should initialize with empty options', () => {
const contentEncodingPlugin = new ContentEncodingPlugin(serverless, {});
expect(contentEncodingPlugin.serverless).toBeInstanceOf(Serverless);
expect(contentEncodingPlugin.options).toEqual({});
});
it('should initialize with custom options', () => {
const contentEncodingPlugin = new ContentEncodingPlugin(serverless, options);
expect(contentEncodingPlugin.serverless).toBeInstanceOf(Serverless);
expect(contentEncodingPlugin.options).toEqual(options);
});
it('should be added as a serverless plugin', () => {
serverless.pluginManager.addPlugin(ContentEncodingPlugin);
expect(serverless.pluginManager.plugins[0]).toBeInstanceOf(ContentEncodingPlugin);
});
});