test.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. const { expect } = require('chai');
  2. const { BasicBase } = require('../src/bases/BasicBase');
  3. const { AdvancedBase } = require('../src/AdvancedBase');
  4. class ClassA extends BasicBase {
  5. static STATIC_OBJ = {
  6. a: 1,
  7. b: 2,
  8. };
  9. static STATIC_ARR = ['a', 'b'];
  10. }
  11. class ClassB extends ClassA {
  12. static STATIC_OBJ = {
  13. c: 3,
  14. d: 4,
  15. };
  16. static STATIC_ARR = ['c', 'd'];
  17. }
  18. describe('testing', () => {
  19. it('does a thing', () => {
  20. const b = new ClassB();
  21. console.log(b._get_inheritance_chain());
  22. console.log([ClassA, ClassB]);
  23. expect(b._get_inheritance_chain()).deep.equal([ClassA, ClassB]);
  24. expect(b._get_merged_static_array('STATIC_ARR'))
  25. .deep.equal(['a', 'b', 'c', 'd']);
  26. expect(b._get_merged_static_object('STATIC_OBJ'))
  27. .deep.equal({ a: 1, b: 2, c: 3, d: 4 });
  28. });
  29. });
  30. class ClassWithModule extends AdvancedBase {
  31. static MODULES = {
  32. axios: 'axios',
  33. };
  34. }
  35. describe('AdvancedBase', () => {
  36. it('passes DI modules to instance', () => {
  37. const c1 = new ClassWithModule();
  38. expect(c1.modules.axios).to.equal('axios');
  39. const c2 = new ClassWithModule({
  40. modules: {
  41. axios: 'my-axios',
  42. },
  43. });
  44. expect(c2.modules.axios).to.equal('my-axios');
  45. });
  46. });