adapter-registry.spec.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import {expect} from 'chai';
  2. import {Schema} from '../schema.js';
  3. import {AdapterRegistry} from './adapter-registry.js';
  4. import {MemoryAdapter} from './builtin/memory-adapter.js';
  5. describe('AdapterRegistry', function () {
  6. describe('getAdapter', function () {
  7. it('instantiates a new or returns an existing adapter by a given datasource name', async function () {
  8. const S = new Schema();
  9. S.defineDatasource({name: 'datasource', adapter: 'memory'});
  10. const R = S.getService(AdapterRegistry);
  11. const adapter = await R.getAdapter('datasource');
  12. expect(adapter).to.be.instanceof(MemoryAdapter);
  13. const sameAdapter = await R.getAdapter('datasource');
  14. expect(sameAdapter).to.be.eq(adapter);
  15. });
  16. it('throws an error if a datasource is not exists', async function () {
  17. const R = new AdapterRegistry();
  18. const promise = R.getAdapter('unknown');
  19. await expect(promise).to.be.rejectedWith(
  20. 'The datasource "unknown" is not defined.',
  21. );
  22. });
  23. it('throws an error if an adapter is not exists', async function () {
  24. const S = new Schema();
  25. S.defineDatasource({name: 'datasource', adapter: 'unknown'});
  26. const R = S.getService(AdapterRegistry);
  27. const promise = R.getAdapter('datasource');
  28. await expect(promise).to.be.rejectedWith(
  29. 'The adapter "unknown" is not found.',
  30. );
  31. });
  32. });
  33. });