parent
c459959654
commit
a76b586685
@ -0,0 +1,34 @@
|
||||
const { expect } = require('chai')
|
||||
const Container = require('../../src/Container')
|
||||
const Service = require('../../src/Service')
|
||||
const DependencyInjector = require('../../src/DependencyInjector')
|
||||
const Injectable = require('../../src/Injectable')
|
||||
|
||||
describe('[integration] circular dependencies', function() {
|
||||
it('should resolve circular dependencies', function() {
|
||||
class A extends Service {
|
||||
static get services() {
|
||||
return ['b']
|
||||
}
|
||||
}
|
||||
|
||||
class B extends Service {
|
||||
static get services() {
|
||||
return ['a']
|
||||
}
|
||||
}
|
||||
|
||||
const defs = { a: A, b: B }
|
||||
const di = new DependencyInjector(new Container(defs))
|
||||
|
||||
const a = di.service('a')
|
||||
const b = di.service('b')
|
||||
|
||||
expect(a).to.be.an.instanceof(A)
|
||||
expect(b).to.be.an.instanceof(B)
|
||||
expect(a.b).to.be.an.instanceof(B)
|
||||
expect(b.a).to.be.an.instanceof(A)
|
||||
expect(a.b.a).to.be.equal(a)
|
||||
expect(b.a.b).to.be.equal(b)
|
||||
})
|
||||
})
|
Loading…
Reference in new issue