Files
directus/packages/drive/tests/exceptions.test.ts
Nicola Krumschmidt d64ca14348 Explicitly set catch parameters to any type (#7654)
This fixes not being able to build the repo due to type issues
introduced by the Typescript 4.4 option "useUnknownInCatchVariables",
which is enabled by default in strict mode.
2021-08-27 10:33:30 -04:00

133 lines
3.4 KiB
TypeScript

import {
AuthorizationRequired,
DriverNotSupported,
InvalidConfig,
MethodNotSupported,
NoSuchBucket,
PermissionMissing,
UnknownException,
WrongKeyPath,
} from '../src/exceptions';
describe('AuthorizationRequired', function () {
it('sets the raw exception object', function () {
try {
throw new AuthorizationRequired(new Error('test'), '/some/path');
} catch (err: any) {
expect(err.raw).toBeDefined();
expect(err.raw.message).toBe('test');
}
});
});
describe('DriverNotSupported', function () {
it('driver should be set', function () {
try {
throw DriverNotSupported.driver('alibaba');
} catch (err: any) {
expect(err.driver).toBeDefined();
expect(err.driver).toBe('alibaba');
}
});
});
describe('DriverNotSupported', function () {
it('driver should be set', function () {
try {
throw DriverNotSupported.driver('alibaba');
} catch (err: any) {
expect(err.driver).toBeDefined();
expect(err.driver).toBe('alibaba');
}
});
});
describe('InvalidConfig', function () {
it('missingDiskName', function () {
const err = InvalidConfig.missingDiskName();
expect(err.status).toBe(500);
expect(err.code).toBe('E_INVALID_CONFIG');
});
it('missingDiskConfig', function () {
const err = InvalidConfig.missingDiskConfig('disk_name');
expect(err.status).toBe(500);
expect(err.code).toBe('E_INVALID_CONFIG');
});
it('missingDiskDriver', function () {
const err = InvalidConfig.missingDiskDriver('disk_name');
expect(err.status).toBe(500);
expect(err.code).toBe('E_INVALID_CONFIG');
});
it('duplicateDiskName', function () {
const err = InvalidConfig.duplicateDiskName('disk_name');
expect(err.status).toBe(500);
expect(err.code).toBe('E_INVALID_CONFIG');
});
});
describe('MethodNotSupported', function () {
it('constructor', function () {
const err = new MethodNotSupported('method', 'driver');
expect(err.status).toBe(500);
expect(err.code).toBe('E_METHOD_NOT_SUPPORTED');
});
});
describe('NoSuchBucket', function () {
it('constructor', function () {
try {
throw new NoSuchBucket(new Error('test'), 'bucket');
} catch (err: any) {
expect(err.raw).toBeDefined();
expect(err.raw.message).toBe('test');
expect(err.status).toBe(500);
expect(err.code).toBe('E_NO_SUCH_BUCKET');
}
});
});
describe('PermissionMissing', function () {
it('constructor', function () {
try {
throw new PermissionMissing(new Error('test'), 'bucket');
} catch (err: any) {
expect(err.raw).toBeDefined();
expect(err.raw.message).toBe('test');
expect(err.status).toBe(500);
expect(err.code).toBe('E_PERMISSION_MISSING');
}
});
});
describe('UnknownException', function () {
it('constructor', function () {
try {
throw new UnknownException(new Error('test'), 'ERR_CODE', __filename);
} catch (err: any) {
expect(err.raw).toBeDefined();
expect(err.raw.message).toBe('test');
expect(err.message).toContain(__filename);
expect(err.message).toContain('ERR_CODE');
expect(err.status).toBe(500);
expect(err.code).toBe('E_UNKNOWN');
}
});
});
describe('WrongKeyPath ', function () {
it('constructor', function () {
try {
throw new WrongKeyPath(new Error('test'), 'some/path');
} catch (err: any) {
expect(err.raw).toBeDefined();
expect(err.raw.message).toBe('test');
expect(err.message).toContain('some/path');
expect(err.status).toBe(500);
expect(err.code).toBe('E_WRONG_KEY_PATH');
}
});
});