I can see a scope problem with the code in your test. I commented directly in the code.
describe 'menu controller', () =>
result=
org1 : ''
org2 : ''
org3 : ''
beforeEach () ->
goog.require 'MyModule.controllers.Menu'
inject ($rootScope, $controller, $http, $httpBackend) ->
# here you define a variable inside a function...
scope = $rootScope.$new()
httpBackend = $httpBackend
httpBackend.whenGET({SomeRequestOptions}).respond result
menuController = $controller new MyModule.controllers.Menu(), {$scope : scope, $http : $http}
it 'should get organisations properly', () ->
# here you try to access the variable from outside the function
expect(scope.organisations).toEqual(result)
I haven't tested the code but I'm quite sure something like this would solve it. According to this post. http://odetocode.com/blogs/scott/archive/2013/06/10/simple-unit-tests-with-angularjs.aspx
describe 'menu controller', () =>
scope = null
result=
org1 : ''
org2 : ''
org3 : ''
beforeEach () ->
goog.require 'MyModule.controllers.Menu'
inject ($rootScope, $controller, $http, $httpBackend) =>
scope = $rootScope.$new()
httpBackend = $httpBackend
httpBackend.whenGET({SomeRequestOptions}).respond result
menuController = $controller new MyModule.controllers.Menu(), {$scope : scope, $http : $http}
it 'should get organisations properly', () ->
expect(scope.organisations).toEqual(result)