UNPKG

wmod-proxy

Version:
143 lines (138 loc) 3.98 kB
"use strict"; var _manifest = require("./manifest.service"); describe('Manifest service', function () { it('should validate manifest 1', function () { var manifest = {}; expect(function () { return (0, _manifest.readManifest)(manifest); }).toThrow(new _manifest.ManifestError(err('name: Required', 'scripts: Required', 'rules: Required'))); }); it('should validate manifest 2', function () { var manifest = { name: 'foo', scripts: [], rules: [] }; expect(function () { return (0, _manifest.readManifest)(manifest); }).toThrow(new _manifest.ManifestError(err('scripts: Array must contain at least 1 element(s)', 'rules: Array must contain at least 1 element(s)'))); }); it('should validate manifest 3', function () { var manifest = { name: 'foo', scripts: [{ name: 'bar' }], rules: [{ hostname: 'example.com' }] }; //readManifest(manifest); expect(function () { return (0, _manifest.readManifest)(manifest); }).toThrow(new _manifest.ManifestError(err('scripts.0.files: Required', 'rules.0.action: Required; Required; Required'))); }); it('should validate manifest 4', function () { var manifest = { name: 'foo', scripts: [{ name: 'bar', files: [] }], rules: [{ hostname: 'example.com' }] }; expect(function () { return (0, _manifest.readManifest)(manifest); }).toThrow(new _manifest.ManifestError(err('scripts.0.files: Array must contain at least 1 element(s)', 'rules.0.action: Required; Required; Required'))); }); it('should validate manifest 5', function () { var manifest = { name: 'foo', scripts: [{ name: 'bar', files: [{ path: 'path/to/file' }] }], rules: [{ hostname: 'example.com' }] }; expect(function () { return (0, _manifest.readManifest)(manifest); }).toThrow(new _manifest.ManifestError(err('scripts.0.files.0.inject: Required', 'rules.0.action: Required; Required; Required'))); }); it('should validate manifest 6', function () { var manifest = { name: 'foo', scripts: [{ name: 'bar', files: [{ inject: true }] }], rules: [{ hostname: 'example.com' }] }; expect(function () { return (0, _manifest.readManifest)(manifest); }).toThrow(new _manifest.ManifestError(err('scripts.0.files.0.path: Required', 'rules.0.action: Required; Required; Required'))); }); it('should validate manifest 7', function () { var manifest = { name: 'foo', scripts: [{ name: 'bar', files: [{ path: 'path/to/file', inject: true }] }], rules: [{ hostname: 'example.com', action: { scripts: ['asd'] } }] }; expect(function () { return (0, _manifest.readManifest)(manifest); }).toThrow(new _manifest.ManifestError(err('script "asd" not found'))); }); it('should validate manifest 8', function () { var manifest = { name: 'foo', scripts: [{ name: 'bar', files: [{ path: 'path/to/file1', inject: true }] }, { name: 'bar', files: [{ path: 'path/to/file2', inject: true }] }], rules: [{ hostname: 'example.com', action: { scripts: ['bar'] } }] }; expect(function () { return (0, _manifest.readManifest)(manifest); }).toThrow(new _manifest.ManifestError(err('script "bar" is not unique'))); }); }); // Helpers function err() { for (var _len = arguments.length, msg = new Array(_len), _key = 0; _key < _len; _key++) { msg[_key] = arguments[_key]; } return msg.length > 1 ? msg.join('\n') + '\n' : msg[0]; } //# sourceMappingURL=manifest.service.test.js.map