wmod-proxy
Version:
Website Modification Proxy
143 lines (138 loc) • 3.98 kB
JavaScript
;
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