Avoid using private serviceHub in package manager test

Signed-off-by: Nathan Sobo <nathan@github.com>
This commit is contained in:
Max Brunsfeld
2015-02-02 10:01:56 -08:00
committed by Nathan Sobo
parent 65f2ffa55e
commit 14969c0522
5 changed files with 38 additions and 76 deletions

View File

@@ -3,11 +3,8 @@ module.exports =
deactivate: ->
handleFirstServiceV3: (service) ->
service('first-service-v3-used')
consumeFirstServiceV3: ->
handleFirstServiceV4: (service) ->
service('first-service-v4-used')
consumeFirstServiceV4: ->
handleSecondService: (service) ->
service('second-service-used')
consumeSecondService: ->

View File

@@ -4,13 +4,13 @@
"consumedServices": {
"service-1": {
"versions": {
">=0.2 <= 0.3.6": "handleFirstServiceV3",
"^0.4.1": "handleFirstServiceV4"
">=0.2 <=0.3.6": "consumeFirstServiceV3",
"^0.4.1": "consumeFirstServiceV4"
}
},
"service-2": {
"versions": {
"0.5.1 || 0.5.2": "handleSecondService"
"0.2.1 || 0.2.2": "consumeSecondService"
}
}
}

View File

@@ -3,11 +3,11 @@ module.exports =
deactivate: ->
firstServiceV3: ->
provideFirstServiceV3: ->
'first-service-v3'
firstServiceV4: ->
provideFirstServiceV4: ->
'first-service-v4'
secondService: ->
provideSecondService: ->
'second-service'

View File

@@ -5,14 +5,14 @@
"service-1": {
"description": "The first service",
"versions": {
"0.3.1": "firstServiceV3",
"0.4.1": "firstServiceV4"
"0.3.1": "provideFirstServiceV3",
"0.4.1": "provideFirstServiceV4"
}
},
"service-2": {
"description": "The second service",
"versions": {
"0.5.1": "secondService"
"0.2.1": "provideSecondService"
}
}
}

View File

@@ -447,80 +447,45 @@ describe "PackageManager", ->
expect(atom.config.get 'editor.increaseIndentPattern', scope: ['.source.omg']).toBe '^a'
describe "service registration", ->
it "registers the package's service providers", ->
service1V3 = null
atom.packages.serviceHub.consume "service-1", "^0.3", (service) ->
service1V3 = service
new Disposable -> service1V3 = 'deactivated'
it "registers the package's provided and consumed services", ->
consumerModule = require "./fixtures/packages/package-with-consumed-services"
firstServiceV3Disposed = false
firstServiceV4Disposed = false
secondServiceDisposed = false
spyOn(consumerModule, 'consumeFirstServiceV3').andReturn(new Disposable -> firstServiceV3Disposed = true)
spyOn(consumerModule, 'consumeFirstServiceV4').andReturn(new Disposable -> firstServiceV4Disposed = true)
spyOn(consumerModule, 'consumeSecondService').andReturn(new Disposable -> secondServiceDisposed = true)
service1V4 = null
atom.packages.serviceHub.consume "service-1", "^0.4", (service) ->
service1V4 = service
new Disposable -> service1V4 = 'deactivated'
service2V5 = null
atom.packages.serviceHub.consume "service-2", "^0.5", (service) ->
service2V5 = service
new Disposable -> service2V5 = 'deactivated'
# Incompatible
service2V6 = null
atom.packages.serviceHub.consume "service-2", "^0.6", (service) ->
service2V6 = service
new Disposable -> service2V6 = 'deactivated'
waitsForPromise ->
atom.packages.activatePackage("package-with-consumed-services")
waitsForPromise ->
atom.packages.activatePackage("package-with-provided-services")
runs ->
expect(service1V3).toBe 'first-service-v3'
expect(service1V4).toBe 'first-service-v4'
expect(service2V5).toBe 'second-service'
expect(service2V6).toBeNull()
expect(consumerModule.consumeFirstServiceV3).toHaveBeenCalledWith('first-service-v3')
expect(consumerModule.consumeFirstServiceV4).toHaveBeenCalledWith('first-service-v4')
expect(consumerModule.consumeSecondService).toHaveBeenCalledWith('second-service')
consumerModule.consumeFirstServiceV3.reset()
consumerModule.consumeFirstServiceV4.reset()
consumerModule.consumeSecondService.reset()
atom.packages.deactivatePackage("package-with-provided-services")
expect(service1V3).toBe 'deactivated'
expect(service1V4).toBe 'deactivated'
expect(service2V5).toBe 'deactivated'
expect(service2V6).toBeNull()
it "registers the package's service dependencies", ->
waitsForPromise ->
atom.packages.activatePackage("package-with-consumed-services")
runs ->
service1V3Spy = jasmine.createSpy('service1V3')
service1V4Spy = jasmine.createSpy('service1V4')
service2V5Spy = jasmine.createSpy('service2V5')
service2V6Spy = jasmine.createSpy('service2V6')
atom.packages.serviceHub.provide "service-1", "0.3.1", service1V3Spy
atom.packages.serviceHub.provide "service-1", "0.4.1", service1V4Spy
atom.packages.serviceHub.provide "service-2", "0.5.1", service2V5Spy
atom.packages.serviceHub.provide "service-2", "0.6.1", service2V5Spy # incompatible
expect(service1V3Spy).toHaveBeenCalledWith('first-service-v3-used')
expect(service1V4Spy).toHaveBeenCalledWith('first-service-v4-used')
expect(service2V5Spy).toHaveBeenCalledWith('second-service-used')
expect(service2V6Spy).not.toHaveBeenCalled()
expect(firstServiceV3Disposed).toBe true
expect(firstServiceV4Disposed).toBe true
expect(secondServiceDisposed).toBe true
atom.packages.deactivatePackage("package-with-consumed-services")
service1V3Spy.reset()
service1V4Spy.reset()
service2V5Spy.reset()
service2V6Spy.reset()
waitsForPromise ->
atom.packages.activatePackage("package-with-provided-services")
atom.packages.serviceHub.provide "service-1", "0.3.1", service1V3Spy
atom.packages.serviceHub.provide "service-1", "0.4.1", service1V4Spy
atom.packages.serviceHub.provide "service-2", "0.5.1", service2V5Spy
atom.packages.serviceHub.provide "service-2", "0.6.1", service2V5Spy # incompatible
expect(service1V3Spy).not.toHaveBeenCalled()
expect(service1V4Spy).not.toHaveBeenCalled()
expect(service2V5Spy).not.toHaveBeenCalled()
expect(service2V6Spy).not.toHaveBeenCalled()
runs ->
expect(consumerModule.consumeFirstServiceV3).not.toHaveBeenCalled()
expect(consumerModule.consumeFirstServiceV4).not.toHaveBeenCalled()
expect(consumerModule.consumeSecondService).not.toHaveBeenCalled()
describe "::deactivatePackage(id)", ->
afterEach ->