diff --git a/packages/sdk-js/readme.md b/packages/sdk-js/readme.md index 38b48e0c98..e947b0bf19 100644 --- a/packages/sdk-js/readme.md +++ b/packages/sdk-js/readme.md @@ -37,11 +37,12 @@ - [ ] Read - [ ] Update - [ ] Delete -- [ ] Files - - [ ] Create (upload) - - [ ] Read - - [ ] Update - - [ ] Delete +- [x] Files + - [x] Create + - [x] Read + - [x] Update + - [x] Delete + - [ ] Upload - [x] Folders - [x] Create - [x] Read @@ -54,39 +55,39 @@ - [x] Read - [x] Update - [x] Delete -- [ ] Presets - - [ ] Create - - [ ] Read - - [ ] Update - - [ ] Delete -- [ ] Relations - - [ ] Create - - [ ] Read - - [ ] Update - - [ ] Delete -- [ ] Revisions - - [ ] Create - - [ ] Read - - [ ] Update - - [ ] Delete -- [ ] Roles - - [ ] Create - - [ ] Read - - [ ] Update - - [ ] Delete +- [x] Presets + - [x] Create + - [x] Read + - [x] Update + - [x] Delete +- [x] Relations + - [x] Create + - [x] Read + - [x] Update + - [x] Delete +- [x] Revisions + - [x] Create + - [x] Read + - [x] Update + - [x] Delete +- [x] Roles + - [x] Create + - [x] Read + - [x] Update + - [x] Delete - [x] Server - [x] Specs - [x] OAS - [x] Ping - [x] Info -- [ ] Settings - - [ ] Read - - [ ] Update -- [ ] Users - - [ ] Create - - [ ] Read - - [ ] Update - - [ ] Delete +- [x] Settings + - [x] Read + - [x] Update +- [x] Users + - [x] Create + - [x] Read + - [x] Update + - [x] Delete - [ ] Invite - [ ] Accept Invite - [ ] Enable TFA diff --git a/packages/sdk-js/src/handlers/files.ts b/packages/sdk-js/src/handlers/files.ts new file mode 100644 index 0000000000..0187ac77ac --- /dev/null +++ b/packages/sdk-js/src/handlers/files.ts @@ -0,0 +1,8 @@ +import { AxiosInstance } from 'axios'; +import { ItemsHandler } from './items'; + +export class FilesHandler extends ItemsHandler { + constructor(axios: AxiosInstance) { + super('directus_files', axios); + } +} diff --git a/packages/sdk-js/src/handlers/folders.ts b/packages/sdk-js/src/handlers/folders.ts index 8a85e6333d..2d627ec307 100644 --- a/packages/sdk-js/src/handlers/folders.ts +++ b/packages/sdk-js/src/handlers/folders.ts @@ -1,49 +1,8 @@ -import { Query, Item, Payload, Response, PrimaryKey } from '../types'; import { AxiosInstance } from 'axios'; import { ItemsHandler } from './items'; -export class FoldersHandler { - private itemsHandler: ItemsHandler; - +export class FoldersHandler extends ItemsHandler { constructor(axios: AxiosInstance) { - this.itemsHandler = new ItemsHandler('directus_folders', axios); - } - - async create(payload: Payload, query?: Query): Promise>; - async create(payloads: Payload[], query?: Query): Promise>; - async create(payloads: Payload | Payload[], query?: Query): Promise> { - return await this.itemsHandler.create(payloads, query); - } - - async read(query?: Query): Promise>; - async read(key: PrimaryKey, query?: Query): Promise>; - async read(keys: PrimaryKey[], query?: Query): Promise>; - async read( - keysOrQuery?: PrimaryKey | PrimaryKey[] | Query, - query?: Query & { single: boolean } - ): Promise> { - return await this.itemsHandler.read(keysOrQuery as any, query); - } - - async update(key: PrimaryKey, payload: Payload, query?: Query): Promise>; - async update(keys: PrimaryKey[], payload: Payload, query?: Query): Promise>; - async update(payload: Payload[], query?: Query): Promise>; - async update(payload: Payload, query: Query): Promise>; - async update( - keyOrPayload: PrimaryKey | PrimaryKey[] | Payload | Payload[], - payloadOrQuery?: Payload | Query, - query?: Query - ): Promise> { - return await this.itemsHandler.update( - keyOrPayload as any, - payloadOrQuery as any, - query as any - ); - } - - async delete(key: PrimaryKey): Promise; - async delete(keys: PrimaryKey[]): Promise; - async delete(keys: PrimaryKey | PrimaryKey[]): Promise { - return await this.itemsHandler.delete(keys as any); + super('directus_folders', axios); } } diff --git a/packages/sdk-js/src/handlers/index.ts b/packages/sdk-js/src/handlers/index.ts index e2c6fe3da3..c5c4c24eec 100644 --- a/packages/sdk-js/src/handlers/index.ts +++ b/packages/sdk-js/src/handlers/index.ts @@ -5,3 +5,9 @@ export * from './activity'; export * from './folders'; export * from './permissions'; export * from './presets'; +export * from './relations'; +export * from './revisions'; +export * from './roles'; +export * from './users'; +export * from './settings'; +export * from './files'; diff --git a/packages/sdk-js/src/handlers/permissions.ts b/packages/sdk-js/src/handlers/permissions.ts index 635d8a4860..f02aaac10c 100644 --- a/packages/sdk-js/src/handlers/permissions.ts +++ b/packages/sdk-js/src/handlers/permissions.ts @@ -1,49 +1,8 @@ -import { Query, Item, Payload, Response, PrimaryKey } from '../types'; import { AxiosInstance } from 'axios'; import { ItemsHandler } from './items'; -export class PermissionsHandler { - private itemsHandler: ItemsHandler; - +export class PermissionsHandler extends ItemsHandler { constructor(axios: AxiosInstance) { - this.itemsHandler = new ItemsHandler('directus_permissions', axios); - } - - async create(payload: Payload, query?: Query): Promise>; - async create(payloads: Payload[], query?: Query): Promise>; - async create(payloads: Payload | Payload[], query?: Query): Promise> { - return await this.itemsHandler.create(payloads, query); - } - - async read(query?: Query): Promise>; - async read(key: PrimaryKey, query?: Query): Promise>; - async read(keys: PrimaryKey[], query?: Query): Promise>; - async read( - keysOrQuery?: PrimaryKey | PrimaryKey[] | Query, - query?: Query & { single: boolean } - ): Promise> { - return await this.itemsHandler.read(keysOrQuery as any, query); - } - - async update(key: PrimaryKey, payload: Payload, query?: Query): Promise>; - async update(keys: PrimaryKey[], payload: Payload, query?: Query): Promise>; - async update(payload: Payload[], query?: Query): Promise>; - async update(payload: Payload, query: Query): Promise>; - async update( - keyOrPayload: PrimaryKey | PrimaryKey[] | Payload | Payload[], - payloadOrQuery?: Payload | Query, - query?: Query - ): Promise> { - return await this.itemsHandler.update( - keyOrPayload as any, - payloadOrQuery as any, - query as any - ); - } - - async delete(key: PrimaryKey): Promise; - async delete(keys: PrimaryKey[]): Promise; - async delete(keys: PrimaryKey | PrimaryKey[]): Promise { - return await this.itemsHandler.delete(keys as any); + super('directus_permissions', axios); } } diff --git a/packages/sdk-js/src/handlers/presets.ts b/packages/sdk-js/src/handlers/presets.ts index 9cda48084c..40b7576c61 100644 --- a/packages/sdk-js/src/handlers/presets.ts +++ b/packages/sdk-js/src/handlers/presets.ts @@ -1,49 +1,8 @@ -import { Query, Item, Payload, Response, PrimaryKey } from '../types'; import { AxiosInstance } from 'axios'; import { ItemsHandler } from './items'; -export class PresetsHandler { - private itemsHandler: ItemsHandler; - +export class PresetsHandler extends ItemsHandler { constructor(axios: AxiosInstance) { - this.itemsHandler = new ItemsHandler('directus_presets', axios); - } - - async create(payload: Payload, query?: Query): Promise>; - async create(payloads: Payload[], query?: Query): Promise>; - async create(payloads: Payload | Payload[], query?: Query): Promise> { - return await this.itemsHandler.create(payloads, query); - } - - async read(query?: Query): Promise>; - async read(key: PrimaryKey, query?: Query): Promise>; - async read(keys: PrimaryKey[], query?: Query): Promise>; - async read( - keysOrQuery?: PrimaryKey | PrimaryKey[] | Query, - query?: Query & { single: boolean } - ): Promise> { - return await this.itemsHandler.read(keysOrQuery as any, query); - } - - async update(key: PrimaryKey, payload: Payload, query?: Query): Promise>; - async update(keys: PrimaryKey[], payload: Payload, query?: Query): Promise>; - async update(payload: Payload[], query?: Query): Promise>; - async update(payload: Payload, query: Query): Promise>; - async update( - keyOrPayload: PrimaryKey | PrimaryKey[] | Payload | Payload[], - payloadOrQuery?: Payload | Query, - query?: Query - ): Promise> { - return await this.itemsHandler.update( - keyOrPayload as any, - payloadOrQuery as any, - query as any - ); - } - - async delete(key: PrimaryKey): Promise; - async delete(keys: PrimaryKey[]): Promise; - async delete(keys: PrimaryKey | PrimaryKey[]): Promise { - return await this.itemsHandler.delete(keys as any); + super('directus_presets', axios); } } diff --git a/packages/sdk-js/src/handlers/relations.ts b/packages/sdk-js/src/handlers/relations.ts new file mode 100644 index 0000000000..888b526d38 --- /dev/null +++ b/packages/sdk-js/src/handlers/relations.ts @@ -0,0 +1,8 @@ +import { AxiosInstance } from 'axios'; +import { ItemsHandler } from './items'; + +export class RelationsHandler extends ItemsHandler { + constructor(axios: AxiosInstance) { + super('directus_relations', axios); + } +} diff --git a/packages/sdk-js/src/handlers/revisions.ts b/packages/sdk-js/src/handlers/revisions.ts new file mode 100644 index 0000000000..97961deb2c --- /dev/null +++ b/packages/sdk-js/src/handlers/revisions.ts @@ -0,0 +1,8 @@ +import { AxiosInstance } from 'axios'; +import { ItemsHandler } from './items'; + +export class RevisionsHandler extends ItemsHandler { + constructor(axios: AxiosInstance) { + super('directus_revisions', axios); + } +} diff --git a/packages/sdk-js/src/handlers/roles.ts b/packages/sdk-js/src/handlers/roles.ts new file mode 100644 index 0000000000..b947e3e996 --- /dev/null +++ b/packages/sdk-js/src/handlers/roles.ts @@ -0,0 +1,8 @@ +import { AxiosInstance } from 'axios'; +import { ItemsHandler } from './items'; + +export class RolesHandler extends ItemsHandler { + constructor(axios: AxiosInstance) { + super('directus_roles', axios); + } +} diff --git a/packages/sdk-js/src/handlers/settings.ts b/packages/sdk-js/src/handlers/settings.ts new file mode 100644 index 0000000000..0d0eb0dc28 --- /dev/null +++ b/packages/sdk-js/src/handlers/settings.ts @@ -0,0 +1,8 @@ +import { AxiosInstance } from 'axios'; +import { ItemsHandler } from './items'; + +export class SettingsHandler extends ItemsHandler { + constructor(axios: AxiosInstance) { + super('directus_settings', axios); + } +} diff --git a/packages/sdk-js/src/handlers/users.ts b/packages/sdk-js/src/handlers/users.ts new file mode 100644 index 0000000000..b58b60d019 --- /dev/null +++ b/packages/sdk-js/src/handlers/users.ts @@ -0,0 +1,8 @@ +import { AxiosInstance } from 'axios'; +import { ItemsHandler } from './items'; + +export class UsersHandler extends ItemsHandler { + constructor(axios: AxiosInstance) { + super('directus_users', axios); + } +} diff --git a/packages/sdk-js/src/index.ts b/packages/sdk-js/src/index.ts index 8ca522b66d..e622c9a6ec 100644 --- a/packages/sdk-js/src/index.ts +++ b/packages/sdk-js/src/index.ts @@ -7,6 +7,10 @@ import { FoldersHandler, PermissionsHandler, PresetsHandler, + RolesHandler, + UsersHandler, + SettingsHandler, + FilesHandler, } from './handlers'; export default class DirectusSDK { @@ -57,4 +61,20 @@ export default class DirectusSDK { get presets() { return new PresetsHandler(this.axios); } + + get roles() { + return new RolesHandler(this.axios); + } + + get users() { + return new UsersHandler(this.axios); + } + + get settings() { + return new SettingsHandler(this.axios); + } + + get files() { + return new FilesHandler(this.axios); + } } diff --git a/packages/sdk-js/tests/handlers/files.ts b/packages/sdk-js/tests/handlers/files.ts new file mode 100644 index 0000000000..859b7ff329 --- /dev/null +++ b/packages/sdk-js/tests/handlers/files.ts @@ -0,0 +1,27 @@ +import { FilesHandler, ItemsHandler } from '../../src/handlers'; +import axios, { AxiosInstance } from 'axios'; +import sinon, { SinonSandbox } from 'sinon'; +import chai, { expect } from 'chai'; +import sinonChai from 'sinon-chai'; + +chai.use(sinonChai); + +describe('FilesHandler', () => { + let sandbox: SinonSandbox; + let axiosInstance: AxiosInstance; + let handler: FilesHandler; + + beforeEach(() => { + sandbox = sinon.createSandbox(); + axiosInstance = axios.create(); + handler = new FilesHandler(axiosInstance); + }); + + afterEach(() => { + sandbox.restore(); + }); + + it('Extends ItemsHandler', () => { + expect(handler).to.be.instanceOf(ItemsHandler); + }); +}); diff --git a/packages/sdk-js/tests/handlers/folders.ts b/packages/sdk-js/tests/handlers/folders.ts index 85a13a9924..7bbdfcf6d5 100644 --- a/packages/sdk-js/tests/handlers/folders.ts +++ b/packages/sdk-js/tests/handlers/folders.ts @@ -21,57 +21,7 @@ describe('FoldersHandler', () => { sandbox.restore(); }); - describe('constructor', () => { - it('Initializes ItemHandler instance', () => { - expect(handler['itemsHandler']).to.be.instanceOf(ItemsHandler); - }); - }); - - describe('create', () => { - it('Calls ItemsHandler#create with the provided params', async () => { - const stub = sandbox - .stub(handler['itemsHandler'], 'create') - .returns(Promise.resolve({ data: {} })); - - await handler.create({ folder: 'test' }); - expect(stub).to.have.been.calledWith({ folder: 'test' }); - - await handler.create([{ folder: 'test' }]); - expect(stub).to.have.been.calledWith([{ folder: 'test' }]); - - await handler.create({ folder: 'test' }, { fields: ['id'] }); - expect(stub).to.have.been.calledWith({ folder: 'test' }, { fields: ['id'] }); - }); - }); - - describe('read', () => { - it('Calls ItemsHandler#read with the provided params', async () => { - const stub = sandbox - .stub(handler['itemsHandler'], 'read') - .returns(Promise.resolve({ data: {} })); - - await handler.read(); - expect(stub).to.have.been.calledWith(); - }); - }); - - describe('update', () => { - it('Calls ItemsHandler#update with the provided params', async () => { - const stub = sandbox - .stub(handler['itemsHandler'], 'update') - .returns(Promise.resolve({ data: [{}] })); - - await handler.update(15, { folder: 'updated name' }); - expect(stub).to.have.been.calledWith(15, { folder: 'updated name' }); - }); - }); - - describe('delete', () => { - it('Calls ItemsHandler#delete with the provided params', async () => { - const stub = sandbox.stub(handler['itemsHandler'], 'delete').returns(Promise.resolve()); - - await handler.delete(15); - expect(stub).to.have.been.calledWith(15); - }); + it('Extends ItemsHandler', () => { + expect(handler).to.be.instanceOf(ItemsHandler); }); }); diff --git a/packages/sdk-js/tests/handlers/permissions.ts b/packages/sdk-js/tests/handlers/permissions.ts index 0dcf56ba06..03ad7d08da 100644 --- a/packages/sdk-js/tests/handlers/permissions.ts +++ b/packages/sdk-js/tests/handlers/permissions.ts @@ -21,57 +21,7 @@ describe('PermissionsHandler', () => { sandbox.restore(); }); - describe('constructor', () => { - it('Initializes ItemHandler instance', () => { - expect(handler['itemsHandler']).to.be.instanceOf(ItemsHandler); - }); - }); - - describe('create', () => { - it('Calls ItemsHandler#create with the provided params', async () => { - const stub = sandbox - .stub(handler['itemsHandler'], 'create') - .returns(Promise.resolve({ data: {} })); - - await handler.create({ permissions: 'test' }); - expect(stub).to.have.been.calledWith({ permissions: 'test' }); - - await handler.create([{ permissions: 'test' }]); - expect(stub).to.have.been.calledWith([{ permissions: 'test' }]); - - await handler.create({ permissions: 'test' }, { fields: ['id'] }); - expect(stub).to.have.been.calledWith({ permissions: 'test' }, { fields: ['id'] }); - }); - }); - - describe('read', () => { - it('Calls ItemsHandler#read with the provided params', async () => { - const stub = sandbox - .stub(handler['itemsHandler'], 'read') - .returns(Promise.resolve({ data: {} })); - - await handler.read(); - expect(stub).to.have.been.calledWith(); - }); - }); - - describe('update', () => { - it('Calls ItemsHandler#update with the provided params', async () => { - const stub = sandbox - .stub(handler['itemsHandler'], 'update') - .returns(Promise.resolve({ data: [{}] })); - - await handler.update(15, { permissions: 'updated name' }); - expect(stub).to.have.been.calledWith(15, { permissions: 'updated name' }); - }); - }); - - describe('delete', () => { - it('Calls ItemsHandler#delete with the provided params', async () => { - const stub = sandbox.stub(handler['itemsHandler'], 'delete').returns(Promise.resolve()); - - await handler.delete(15); - expect(stub).to.have.been.calledWith(15); - }); + it('Extends ItemsHandler', () => { + expect(handler).to.be.instanceOf(ItemsHandler); }); }); diff --git a/packages/sdk-js/tests/handlers/presets.ts b/packages/sdk-js/tests/handlers/presets.ts index df06aba159..bfcefd0c95 100644 --- a/packages/sdk-js/tests/handlers/presets.ts +++ b/packages/sdk-js/tests/handlers/presets.ts @@ -21,57 +21,7 @@ describe('PresetsHandler', () => { sandbox.restore(); }); - describe('constructor', () => { - it('Initializes ItemHandler instance', () => { - expect(handler['itemsHandler']).to.be.instanceOf(ItemsHandler); - }); - }); - - describe('create', () => { - it('Calls ItemsHandler#create with the provided params', async () => { - const stub = sandbox - .stub(handler['itemsHandler'], 'create') - .returns(Promise.resolve({ data: {} })); - - await handler.create({ layout: 'test' }); - expect(stub).to.have.been.calledWith({ layout: 'test' }); - - await handler.create([{ layout: 'test' }]); - expect(stub).to.have.been.calledWith([{ layout: 'test' }]); - - await handler.create({ layout: 'test' }, { fields: ['id'] }); - expect(stub).to.have.been.calledWith({ layout: 'test' }, { fields: ['id'] }); - }); - }); - - describe('read', () => { - it('Calls ItemsHandler#read with the provided params', async () => { - const stub = sandbox - .stub(handler['itemsHandler'], 'read') - .returns(Promise.resolve({ data: {} })); - - await handler.read(); - expect(stub).to.have.been.calledWith(); - }); - }); - - describe('update', () => { - it('Calls ItemsHandler#update with the provided params', async () => { - const stub = sandbox - .stub(handler['itemsHandler'], 'update') - .returns(Promise.resolve({ data: [{}] })); - - await handler.update(15, { layout: 'updated name' }); - expect(stub).to.have.been.calledWith(15, { layout: 'updated name' }); - }); - }); - - describe('delete', () => { - it('Calls ItemsHandler#delete with the provided params', async () => { - const stub = sandbox.stub(handler['itemsHandler'], 'delete').returns(Promise.resolve()); - - await handler.delete(15); - expect(stub).to.have.been.calledWith(15); - }); + it('Extends ItemsHandler', () => { + expect(handler).to.be.instanceOf(ItemsHandler); }); }); diff --git a/packages/sdk-js/tests/handlers/relations.ts b/packages/sdk-js/tests/handlers/relations.ts new file mode 100644 index 0000000000..6ba07f7b49 --- /dev/null +++ b/packages/sdk-js/tests/handlers/relations.ts @@ -0,0 +1,27 @@ +import { RelationsHandler, ItemsHandler } from '../../src/handlers'; +import axios, { AxiosInstance } from 'axios'; +import sinon, { SinonSandbox } from 'sinon'; +import chai, { expect } from 'chai'; +import sinonChai from 'sinon-chai'; + +chai.use(sinonChai); + +describe('RelationsHandler', () => { + let sandbox: SinonSandbox; + let axiosInstance: AxiosInstance; + let handler: RelationsHandler; + + beforeEach(() => { + sandbox = sinon.createSandbox(); + axiosInstance = axios.create(); + handler = new RelationsHandler(axiosInstance); + }); + + afterEach(() => { + sandbox.restore(); + }); + + it('Extends ItemsHandler', () => { + expect(handler).to.be.instanceOf(ItemsHandler); + }); +}); diff --git a/packages/sdk-js/tests/handlers/revisions.ts b/packages/sdk-js/tests/handlers/revisions.ts new file mode 100644 index 0000000000..404d54dd1f --- /dev/null +++ b/packages/sdk-js/tests/handlers/revisions.ts @@ -0,0 +1,27 @@ +import { RevisionsHandler, ItemsHandler } from '../../src/handlers'; +import axios, { AxiosInstance } from 'axios'; +import sinon, { SinonSandbox } from 'sinon'; +import chai, { expect } from 'chai'; +import sinonChai from 'sinon-chai'; + +chai.use(sinonChai); + +describe('RevisionsHandler', () => { + let sandbox: SinonSandbox; + let axiosInstance: AxiosInstance; + let handler: RevisionsHandler; + + beforeEach(() => { + sandbox = sinon.createSandbox(); + axiosInstance = axios.create(); + handler = new RevisionsHandler(axiosInstance); + }); + + afterEach(() => { + sandbox.restore(); + }); + + it('Extends ItemsHandler', () => { + expect(handler).to.be.instanceOf(ItemsHandler); + }); +}); diff --git a/packages/sdk-js/tests/handlers/roles.ts b/packages/sdk-js/tests/handlers/roles.ts new file mode 100644 index 0000000000..bfcefd0c95 --- /dev/null +++ b/packages/sdk-js/tests/handlers/roles.ts @@ -0,0 +1,27 @@ +import { PresetsHandler, ItemsHandler } from '../../src/handlers'; +import axios, { AxiosInstance } from 'axios'; +import sinon, { SinonSandbox } from 'sinon'; +import chai, { expect } from 'chai'; +import sinonChai from 'sinon-chai'; + +chai.use(sinonChai); + +describe('PresetsHandler', () => { + let sandbox: SinonSandbox; + let axiosInstance: AxiosInstance; + let handler: PresetsHandler; + + beforeEach(() => { + sandbox = sinon.createSandbox(); + axiosInstance = axios.create(); + handler = new PresetsHandler(axiosInstance); + }); + + afterEach(() => { + sandbox.restore(); + }); + + it('Extends ItemsHandler', () => { + expect(handler).to.be.instanceOf(ItemsHandler); + }); +}); diff --git a/packages/sdk-js/tests/handlers/settings.ts b/packages/sdk-js/tests/handlers/settings.ts new file mode 100644 index 0000000000..d4f33297ee --- /dev/null +++ b/packages/sdk-js/tests/handlers/settings.ts @@ -0,0 +1,27 @@ +import { SettingsHandler, ItemsHandler } from '../../src/handlers'; +import axios, { AxiosInstance } from 'axios'; +import sinon, { SinonSandbox } from 'sinon'; +import chai, { expect } from 'chai'; +import sinonChai from 'sinon-chai'; + +chai.use(sinonChai); + +describe('SettingsHandler', () => { + let sandbox: SinonSandbox; + let axiosInstance: AxiosInstance; + let handler: SettingsHandler; + + beforeEach(() => { + sandbox = sinon.createSandbox(); + axiosInstance = axios.create(); + handler = new SettingsHandler(axiosInstance); + }); + + afterEach(() => { + sandbox.restore(); + }); + + it('Extends ItemsHandler', () => { + expect(handler).to.be.instanceOf(ItemsHandler); + }); +}); diff --git a/packages/sdk-js/tests/handlers/users.ts b/packages/sdk-js/tests/handlers/users.ts new file mode 100644 index 0000000000..16b72c86ad --- /dev/null +++ b/packages/sdk-js/tests/handlers/users.ts @@ -0,0 +1,27 @@ +import { UsersHandler, ItemsHandler } from '../../src/handlers'; +import axios, { AxiosInstance } from 'axios'; +import sinon, { SinonSandbox } from 'sinon'; +import chai, { expect } from 'chai'; +import sinonChai from 'sinon-chai'; + +chai.use(sinonChai); + +describe('UsersHandler', () => { + let sandbox: SinonSandbox; + let axiosInstance: AxiosInstance; + let handler: UsersHandler; + + beforeEach(() => { + sandbox = sinon.createSandbox(); + axiosInstance = axios.create(); + handler = new UsersHandler(axiosInstance); + }); + + afterEach(() => { + sandbox.restore(); + }); + + it('Extends ItemsHandler', () => { + expect(handler).to.be.instanceOf(ItemsHandler); + }); +}); diff --git a/packages/sdk-js/tests/index.ts b/packages/sdk-js/tests/index.ts index 72cc27e86f..83e97d2484 100644 --- a/packages/sdk-js/tests/index.ts +++ b/packages/sdk-js/tests/index.ts @@ -6,6 +6,10 @@ import { FoldersHandler, PermissionsHandler, PresetsHandler, + RolesHandler, + UsersHandler, + SettingsHandler, + FilesHandler, } from '../src/handlers/'; import { expect } from 'chai'; @@ -60,4 +64,20 @@ describe('DirectusSDK', () => { it('Returns PresetsHandler for #presets', () => { expect(directus.presets).to.be.instanceOf(PresetsHandler); }); + + it('Returns RolesHandler for #roles', () => { + expect(directus.roles).to.be.instanceOf(RolesHandler); + }); + + it('Returns UsersHandler for #users', () => { + expect(directus.users).to.be.instanceOf(UsersHandler); + }); + + it('Returns SettingsHandler for #users', () => { + expect(directus.settings).to.be.instanceOf(SettingsHandler); + }); + + it('Returns FilesHandler for #users', () => { + expect(directus.files).to.be.instanceOf(FilesHandler); + }); });