UNPKG

payload

Version:

Node, React and MongoDB Headless CMS and Application Framework

87 lines (86 loc) 9.03 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const _mimeTypeValidator = require("./mimeTypeValidator"); const options = { siblingData: { filename: 'file.xyz' } }; describe('mimeTypeValidator', ()=>{ it('should validate single mimeType', ()=>{ const mimeTypes = [ 'image/png' ]; const validate = (0, _mimeTypeValidator.mimeTypeValidator)(mimeTypes); expect(validate('image/png', options)).toBe(true); }); it('should validate multiple mimeTypes', ()=>{ const mimeTypes = [ 'image/png', 'application/pdf' ]; const validate = (0, _mimeTypeValidator.mimeTypeValidator)(mimeTypes); expect(validate('image/png', options)).toBe(true); expect(validate('application/pdf', options)).toBe(true); }); it('should validate using wildcard', ()=>{ const mimeTypes = [ 'image/*' ]; const validate = (0, _mimeTypeValidator.mimeTypeValidator)(mimeTypes); expect(validate('image/png', options)).toBe(true); expect(validate('image/gif', options)).toBe(true); }); it('should validate multiple wildcards', ()=>{ const mimeTypes = [ 'image/*', 'audio/*' ]; const validate = (0, _mimeTypeValidator.mimeTypeValidator)(mimeTypes); expect(validate('image/png', options)).toBe(true); expect(validate('audio/mpeg', options)).toBe(true); }); it('should not validate when unmatched', ()=>{ const mimeTypes = [ 'image/png' ]; const validate = (0, _mimeTypeValidator.mimeTypeValidator)(mimeTypes); expect(validate('audio/mpeg', options)).toBe("Invalid file type: 'audio/mpeg'"); }); it('should not validate when unmatched - multiple mimeTypes', ()=>{ const mimeTypes = [ 'image/png', 'application/pdf' ]; const validate = (0, _mimeTypeValidator.mimeTypeValidator)(mimeTypes); expect(validate('audio/mpeg', options)).toBe("Invalid file type: 'audio/mpeg'"); }); it('should not validate using wildcard - unmatched', ()=>{ const mimeTypes = [ 'image/*' ]; const validate = (0, _mimeTypeValidator.mimeTypeValidator)(mimeTypes); expect(validate('audio/mpeg', options)).toBe("Invalid file type: 'audio/mpeg'"); }); it('should not validate multiple wildcards - unmatched', ()=>{ const mimeTypes = [ 'image/*', 'audio/*' ]; const validate = (0, _mimeTypeValidator.mimeTypeValidator)(mimeTypes); expect(validate('video/mp4', options)).toBe("Invalid file type: 'video/mp4'"); expect(validate('application/pdf', options)).toBe("Invalid file type: 'application/pdf'"); }); it('should not error when mimeType is missing', ()=>{ const mimeTypes = [ 'image/*', 'application/pdf' ]; const validate = (0, _mimeTypeValidator.mimeTypeValidator)(mimeTypes); let value; expect(validate(value, options)).toBe('Invalid file type'); }); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL21pbWVUeXBlVmFsaWRhdG9yLnNwZWMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBWYWxpZGF0ZU9wdGlvbnMgfSBmcm9tICcuLi9maWVsZHMvY29uZmlnL3R5cGVzJ1xuXG5pbXBvcnQgeyBtaW1lVHlwZVZhbGlkYXRvciB9IGZyb20gJy4vbWltZVR5cGVWYWxpZGF0b3InXG5cbmNvbnN0IG9wdGlvbnMgPSB7IHNpYmxpbmdEYXRhOiB7IGZpbGVuYW1lOiAnZmlsZS54eXonIH0gfSBhcyBWYWxpZGF0ZU9wdGlvbnM8XG4gIHVuZGVmaW5lZCxcbiAgdW5kZWZpbmVkLFxuICB1bmRlZmluZWRcbj5cblxuZGVzY3JpYmUoJ21pbWVUeXBlVmFsaWRhdG9yJywgKCkgPT4ge1xuICBpdCgnc2hvdWxkIHZhbGlkYXRlIHNpbmdsZSBtaW1lVHlwZScsICgpID0+IHtcbiAgICBjb25zdCBtaW1lVHlwZXMgPSBbJ2ltYWdlL3BuZyddXG4gICAgY29uc3QgdmFsaWRhdGUgPSBtaW1lVHlwZVZhbGlkYXRvcihtaW1lVHlwZXMpXG4gICAgZXhwZWN0KHZhbGlkYXRlKCdpbWFnZS9wbmcnLCBvcHRpb25zKSkudG9CZSh0cnVlKVxuICB9KVxuXG4gIGl0KCdzaG91bGQgdmFsaWRhdGUgbXVsdGlwbGUgbWltZVR5cGVzJywgKCkgPT4ge1xuICAgIGNvbnN0IG1pbWVUeXBlcyA9IFsnaW1hZ2UvcG5nJywgJ2FwcGxpY2F0aW9uL3BkZiddXG4gICAgY29uc3QgdmFsaWRhdGUgPSBtaW1lVHlwZVZhbGlkYXRvcihtaW1lVHlwZXMpXG4gICAgZXhwZWN0KHZhbGlkYXRlKCdpbWFnZS9wbmcnLCBvcHRpb25zKSkudG9CZSh0cnVlKVxuICAgIGV4cGVjdCh2YWxpZGF0ZSgnYXBwbGljYXRpb24vcGRmJywgb3B0aW9ucykpLnRvQmUodHJ1ZSlcbiAgfSlcblxuICBpdCgnc2hvdWxkIHZhbGlkYXRlIHVzaW5nIHdpbGRjYXJkJywgKCkgPT4ge1xuICAgIGNvbnN0IG1pbWVUeXBlcyA9IFsnaW1hZ2UvKiddXG4gICAgY29uc3QgdmFsaWRhdGUgPSBtaW1lVHlwZVZhbGlkYXRvcihtaW1lVHlwZXMpXG4gICAgZXhwZWN0KHZhbGlkYXRlKCdpbWFnZS9wbmcnLCBvcHRpb25zKSkudG9CZSh0cnVlKVxuICAgIGV4cGVjdCh2YWxpZGF0ZSgnaW1hZ2UvZ2lmJywgb3B0aW9ucykpLnRvQmUodHJ1ZSlcbiAgfSlcblxuICBpdCgnc2hvdWxkIHZhbGlkYXRlIG11bHRpcGxlIHdpbGRjYXJkcycsICgpID0+IHtcbiAgICBjb25zdCBtaW1lVHlwZXMgPSBbJ2ltYWdlLyonLCAnYXVkaW8vKiddXG4gICAgY29uc3QgdmFsaWRhdGUgPSBtaW1lVHlwZVZhbGlkYXRvcihtaW1lVHlwZXMpXG4gICAgZXhwZWN0KHZhbGlkYXRlKCdpbWFnZS9wbmcnLCBvcHRpb25zKSkudG9CZSh0cnVlKVxuICAgIGV4cGVjdCh2YWxpZGF0ZSgnYXVkaW8vbXBlZycsIG9wdGlvbnMpKS50b0JlKHRydWUpXG4gIH0pXG5cbiAgaXQoJ3Nob3VsZCBub3QgdmFsaWRhdGUgd2hlbiB1bm1hdGNoZWQnLCAoKSA9PiB7XG4gICAgY29uc3QgbWltZVR5cGVzID0gWydpbWFnZS9wbmcnXVxuICAgIGNvbnN0IHZhbGlkYXRlID0gbWltZVR5cGVWYWxpZGF0b3IobWltZVR5cGVzKVxuICAgIGV4cGVjdCh2YWxpZGF0ZSgnYXVkaW8vbXBlZycsIG9wdGlvbnMpKS50b0JlKFwiSW52YWxpZCBmaWxlIHR5cGU6ICdhdWRpby9tcGVnJ1wiKVxuICB9KVxuXG4gIGl0KCdzaG91bGQgbm90IHZhbGlkYXRlIHdoZW4gdW5tYXRjaGVkIC0gbXVsdGlwbGUgbWltZVR5cGVzJywgKCkgPT4ge1xuICAgIGNvbnN0IG1pbWVUeXBlcyA9IFsnaW1hZ2UvcG5nJywgJ2FwcGxpY2F0aW9uL3BkZiddXG4gICAgY29uc3QgdmFsaWRhdGUgPSBtaW1lVHlwZVZhbGlkYXRvcihtaW1lVHlwZXMpXG4gICAgZXhwZWN0KHZhbGlkYXRlKCdhdWRpby9tcGVnJywgb3B0aW9ucykpLnRvQmUoXCJJbnZhbGlkIGZpbGUgdHlwZTogJ2F1ZGlvL21wZWcnXCIpXG4gIH0pXG5cbiAgaXQoJ3Nob3VsZCBub3QgdmFsaWRhdGUgdXNpbmcgd2lsZGNhcmQgLSB1bm1hdGNoZWQnLCAoKSA9PiB7XG4gICAgY29uc3QgbWltZVR5cGVzID0gWydpbWFnZS8qJ11cbiAgICBjb25zdCB2YWxpZGF0ZSA9IG1pbWVUeXBlVmFsaWRhdG9yKG1pbWVUeXBlcylcbiAgICBleHBlY3QodmFsaWRhdGUoJ2F1ZGlvL21wZWcnLCBvcHRpb25zKSkudG9CZShcIkludmFsaWQgZmlsZSB0eXBlOiAnYXVkaW8vbXBlZydcIilcbiAgfSlcblxuICBpdCgnc2hvdWxkIG5vdCB2YWxpZGF0ZSBtdWx0aXBsZSB3aWxkY2FyZHMgLSB1bm1hdGNoZWQnLCAoKSA9PiB7XG4gICAgY29uc3QgbWltZVR5cGVzID0gWydpbWFnZS8qJywgJ2F1ZGlvLyonXVxuICAgIGNvbnN0IHZhbGlkYXRlID0gbWltZVR5cGVWYWxpZGF0b3IobWltZVR5cGVzKVxuICAgIGV4cGVjdCh2YWxpZGF0ZSgndmlkZW8vbXA0Jywgb3B0aW9ucykpLnRvQmUoXCJJbnZhbGlkIGZpbGUgdHlwZTogJ3ZpZGVvL21wNCdcIilcbiAgICBleHBlY3QodmFsaWRhdGUoJ2FwcGxpY2F0aW9uL3BkZicsIG9wdGlvbnMpKS50b0JlKFwiSW52YWxpZCBmaWxlIHR5cGU6ICdhcHBsaWNhdGlvbi9wZGYnXCIpXG4gIH0pXG5cbiAgaXQoJ3Nob3VsZCBub3QgZXJyb3Igd2hlbiBtaW1lVHlwZSBpcyBtaXNzaW5nJywgKCkgPT4ge1xuICAgIGNvbnN0IG1pbWVUeXBlcyA9IFsnaW1hZ2UvKicsICdhcHBsaWNhdGlvbi9wZGYnXVxuICAgIGNvbnN0IHZhbGlkYXRlID0gbWltZVR5cGVWYWxpZGF0b3IobWltZVR5cGVzKVxuICAgIGxldCB2YWx1ZVxuICAgIGV4cGVjdCh2YWxpZGF0ZSh2YWx1ZSwgb3B0aW9ucykpLnRvQmUoJ0ludmFsaWQgZmlsZSB0eXBlJylcbiAgfSlcbn0pXG4iXSwibmFtZXMiOlsib3B0aW9ucyIsInNpYmxpbmdEYXRhIiwiZmlsZW5hbWUiLCJkZXNjcmliZSIsIml0IiwibWltZVR5cGVzIiwidmFsaWRhdGUiLCJtaW1lVHlwZVZhbGlkYXRvciIsImV4cGVjdCIsInRvQmUiLCJ2YWx1ZSJdLCJtYXBwaW5ncyI6Ijs7OzttQ0FFa0M7QUFFbEMsTUFBTUEsVUFBVTtJQUFFQyxhQUFhO1FBQUVDLFVBQVU7SUFBVztBQUFFO0FBTXhEQyxTQUFTLHFCQUFxQjtJQUM1QkMsR0FBRyxtQ0FBbUM7UUFDcEMsTUFBTUMsWUFBWTtZQUFDO1NBQVk7UUFDL0IsTUFBTUMsV0FBV0MsSUFBQUEsb0NBQWlCLEVBQUNGO1FBQ25DRyxPQUFPRixTQUFTLGFBQWFOLFVBQVVTLElBQUksQ0FBQztJQUM5QztJQUVBTCxHQUFHLHNDQUFzQztRQUN2QyxNQUFNQyxZQUFZO1lBQUM7WUFBYTtTQUFrQjtRQUNsRCxNQUFNQyxXQUFXQyxJQUFBQSxvQ0FBaUIsRUFBQ0Y7UUFDbkNHLE9BQU9GLFNBQVMsYUFBYU4sVUFBVVMsSUFBSSxDQUFDO1FBQzVDRCxPQUFPRixTQUFTLG1CQUFtQk4sVUFBVVMsSUFBSSxDQUFDO0lBQ3BEO0lBRUFMLEdBQUcsa0NBQWtDO1FBQ25DLE1BQU1DLFlBQVk7WUFBQztTQUFVO1FBQzdCLE1BQU1DLFdBQVdDLElBQUFBLG9DQUFpQixFQUFDRjtRQUNuQ0csT0FBT0YsU0FBUyxhQUFhTixVQUFVUyxJQUFJLENBQUM7UUFDNUNELE9BQU9GLFNBQVMsYUFBYU4sVUFBVVMsSUFBSSxDQUFDO0lBQzlDO0lBRUFMLEdBQUcsc0NBQXNDO1FBQ3ZDLE1BQU1DLFlBQVk7WUFBQztZQUFXO1NBQVU7UUFDeEMsTUFBTUMsV0FBV0MsSUFBQUEsb0NBQWlCLEVBQUNGO1FBQ25DRyxPQUFPRixTQUFTLGFBQWFOLFVBQVVTLElBQUksQ0FBQztRQUM1Q0QsT0FBT0YsU0FBUyxjQUFjTixVQUFVUyxJQUFJLENBQUM7SUFDL0M7SUFFQUwsR0FBRyxzQ0FBc0M7UUFDdkMsTUFBTUMsWUFBWTtZQUFDO1NBQVk7UUFDL0IsTUFBTUMsV0FBV0MsSUFBQUEsb0NBQWlCLEVBQUNGO1FBQ25DRyxPQUFPRixTQUFTLGNBQWNOLFVBQVVTLElBQUksQ0FBQztJQUMvQztJQUVBTCxHQUFHLDJEQUEyRDtRQUM1RCxNQUFNQyxZQUFZO1lBQUM7WUFBYTtTQUFrQjtRQUNsRCxNQUFNQyxXQUFXQyxJQUFBQSxvQ0FBaUIsRUFBQ0Y7UUFDbkNHLE9BQU9GLFNBQVMsY0FBY04sVUFBVVMsSUFBSSxDQUFDO0lBQy9DO0lBRUFMLEdBQUcsa0RBQWtEO1FBQ25ELE1BQU1DLFlBQVk7WUFBQztTQUFVO1FBQzdCLE1BQU1DLFdBQVdDLElBQUFBLG9DQUFpQixFQUFDRjtRQUNuQ0csT0FBT0YsU0FBUyxjQUFjTixVQUFVUyxJQUFJLENBQUM7SUFDL0M7SUFFQUwsR0FBRyxzREFBc0Q7UUFDdkQsTUFBTUMsWUFBWTtZQUFDO1lBQVc7U0FBVTtRQUN4QyxNQUFNQyxXQUFXQyxJQUFBQSxvQ0FBaUIsRUFBQ0Y7UUFDbkNHLE9BQU9GLFNBQVMsYUFBYU4sVUFBVVMsSUFBSSxDQUFDO1FBQzVDRCxPQUFPRixTQUFTLG1CQUFtQk4sVUFBVVMsSUFBSSxDQUFDO0lBQ3BEO0lBRUFMLEdBQUcsNkNBQTZDO1FBQzlDLE1BQU1DLFlBQVk7WUFBQztZQUFXO1NBQWtCO1FBQ2hELE1BQU1DLFdBQVdDLElBQUFBLG9DQUFpQixFQUFDRjtRQUNuQyxJQUFJSztRQUNKRixPQUFPRixTQUFTSSxPQUFPVixVQUFVUyxJQUFJLENBQUM7SUFDeEM7QUFDRiJ9