1 | should = require 'should'
|
2 | _ = require 'lodash'
|
3 | logger = require 'torch'
|
4 | {join} = require 'path'
|
5 |
|
6 | core = require '../lib/core'
|
7 | mockRetriever = require './helpers/mockRetriever'
|
8 |
|
9 | initCoreWithMock = (packages) ->
|
10 | retriever = mockRetriever()
|
11 | _.merge retriever.packages, packages
|
12 | core.init {
|
13 | timeout: 20
|
14 | }, retriever
|
15 |
|
16 | describe 'extension config', ->
|
17 |
|
18 | beforeEach (done) ->
|
19 | core.reset (err) ->
|
20 | core.wireUpLoggers [{writer: 'console', level: 'info'}]
|
21 | done(err)
|
22 |
|
23 | it 'should receive project config', (done) ->
|
24 |
|
25 |
|
26 | projectConfig =
|
27 | extensions:
|
28 | server: '*'
|
29 | config:
|
30 | serverPort: 4000
|
31 | apiPort: 4001
|
32 |
|
33 |
|
34 | extensionConfig = (app) ->
|
35 |
|
36 |
|
37 | should.exist app
|
38 | app.should.eql projectConfig.config
|
39 | done()
|
40 | return app
|
41 |
|
42 |
|
43 | initCoreWithMock {
|
44 | '': projectConfig
|
45 | node_modules:
|
46 | 'axiom-server': {}
|
47 | config:
|
48 | server: extensionConfig
|
49 | }
|
50 |
|
51 | it 'should be accessible within an extension', (done) ->
|
52 | serverExtension =
|
53 | config:
|
54 | port: 4000
|
55 |
|
56 | services:
|
57 | run: (args, fin) ->
|
58 | 4000.should.eql @config.port
|
59 | fin()
|
60 |
|
61 | core.load 'server', serverExtension
|
62 | core.request 'server.run', {}, done
|
63 |
|
64 | it 'should not be accessible from another extension', (done) ->
|
65 | irrelevantExtension =
|
66 | config:
|
67 | irrelevantValue: 2
|
68 |
|
69 | serverExtension =
|
70 | services:
|
71 | run: (args, fin) ->
|
72 | @config.should.not.have.key 'irrelevantValue'
|
73 | fin()
|
74 |
|
75 | core.load 'irrelevant', irrelevantExtension
|
76 | core.load 'server', serverExtension
|
77 | core.request 'server.run', {}, done
|