1 | helpers = require '../modules/common/helpers'
|
2 | vows = require 'vows'
|
3 | assert = require 'assert'
|
4 | fs = require 'fs-extra'
|
5 | KDKite = require '../lib/kdkite'
|
6 |
|
7 | vows
|
8 | .describe('Copy skeleton')
|
9 | .addBatch
|
10 | 'when creating a kite from skeleton':
|
11 | topic: ->
|
12 | try
|
13 | cb = this.callback
|
14 | fs.remove '/tmp/kd/', (err)->
|
15 | console.log "here2"
|
16 | fs.mkdirsSync "/tmp/kd"
|
17 |
|
18 | env =
|
19 | name: 'kitefoobar123'
|
20 | username: 'ybrs'
|
21 | mail: "themailofuser@foobarbaz.com"
|
22 |
|
23 | helpers.createSkeleton
|
24 | skel: 'worker.kite'
|
25 | toPath: '/tmp/kd/kd-tests/'
|
26 | env: env
|
27 | callback: (o, e)->
|
28 | fs.readFile '/tmp/kd/kd-tests/index.coffee', 'utf8', (err, f)->
|
29 | cb(e, f, env)
|
30 | catch error
|
31 | console.log error
|
32 | return
|
33 | 'we get the files': (e, f, env) ->
|
34 | assert f.indexOf(env.username) > 0, "env username not in file"
|
35 |
|
36 | .addBatch
|
37 | 'init a kite with dependencies':
|
38 | topic: ->
|
39 | try
|
40 | cb = this.callback
|
41 |
|
42 |
|
43 |
|
44 |
|
45 |
|
46 |
|
47 |
|
48 |
|
49 | create_kite = (name, callback)->
|
50 | kite = new KDKite("/tmp/kd/#{name}")
|
51 | kite.name = name
|
52 | kite.username = 'ybrs'
|
53 | kite.mail = 'themailofuser@foobarbaz.com'
|
54 | kite.version = '1.0.1'
|
55 | kite.cloneFrom 'worker.kite', ->
|
56 | kite.on 'ready', =>
|
57 | console.log 'kite ready'
|
58 | callback(false, kite)
|
59 | kite.prepare()
|
60 | return kite
|
61 |
|
62 | kitefoo1 = false
|
63 | create_kite 'kitefoo1', (err, kite)->
|
64 | kitefoo1 = kite
|
65 |
|
66 | kitefoo2 = false
|
67 | create_kite 'kitefoo2', (err, kite)->
|
68 | kitefoo2 = kite
|
69 |
|
70 | kitefoo3 = false
|
71 | create_kite 'kitefoo3', (err, kite)->
|
72 | kitefoo3 = kite
|
73 |
|
74 | kitefoo4 = false
|
75 | create_kite 'kitefoo4', (err, kite)->
|
76 | kitefoo4 = kite
|
77 |
|
78 | create_dependency_chain = ()=>
|
79 | mykite = new KDKite('/tmp/kd/kd-tests')
|
80 | mykite.on 'ready', =>
|
81 | mykite.addDependency '/tmp/kd/kitefoo1', (err)=>
|
82 | mykite.addDependency '/tmp/kd/kitefoo2', (err)=>
|
83 | kitefoo2.addDependency '/tmp/kd/kitefoo3', (err)=>
|
84 | kitefoo3.addDependency '/tmp/kd/kitefoo4', (err)=>
|
85 | console.log "added dependencies !!!!!!!!!!!!!!!!!"
|
86 | console.log "???????", kitefoo2.manifest.dependencies
|
87 | assert '/tmp/kd/kitefoo3' in kitefoo2.manifest.dependencies
|
88 | console.log "aaaaaaaaaaaaaaaa 999999999999999999"
|
89 | cb false, mykite, kitefoo1, kitefoo2, kitefoo3, kitefoo4
|
90 | mykite.prepare()
|
91 |
|
92 | ti = setInterval ->
|
93 | if false not in [kitefoo1, kitefoo2, kitefoo3, kitefoo4]
|
94 | clearTimeout ti
|
95 | create_dependency_chain()
|
96 | , 1000
|
97 |
|
98 |
|
99 | catch Error
|
100 | console.trace Error
|
101 | return
|
102 |
|
103 | 'we get the name': (err, mykite, kitefoo1, kitefoo2, kitefoo3, kitefoo4)->
|
104 | assert fs.existsSync '/tmp/kd/kitefoo1/manifest.json'
|
105 | assert kitefoo1.name == 'kitefoo1'
|
106 | assert mykite.name == 'kitefoobar123'
|
107 | deps = JSON.parse(fs.readFileSync('/tmp/kd/kd-tests/manifest.json').toString()).dependencies
|
108 | console.log kitefoo1.name, deps
|
109 | assert "/tmp/kd/#{kitefoo1.name}" in deps
|
110 | assert "/tmp/kd/#{kitefoo2.name}" in deps
|
111 | console.log 'dependencies', kitefoo2.manifest.dependencies
|
112 | assert '/tmp/kd/kitefoo3' in kitefoo2.manifest.dependencies
|
113 |
|
114 | .addBatch
|
115 | 'prepare a kite with dependencies':
|
116 | topic: ->
|
117 | try
|
118 | cb = this.callback
|
119 | console.log "=========================="
|
120 | mykite = new KDKite('/tmp/kd/kd-tests')
|
121 | mykite.on 'ready', =>
|
122 | cb false, mykite
|
123 | mykite.prepare()
|
124 | return
|
125 | catch E
|
126 | console.trace E
|
127 | 'dependencies installed': (err, mykite)->
|
128 | assert fs.existsSync "/tmp/kd/kd-tests/kites/kitefoo1"
|
129 | assert fs.existsSync "/tmp/kd/kd-tests/kites/kitefoo2/manifest.json"
|
130 | assert fs.existsSync "/tmp/kd/kd-tests/kites/kitefoo2"
|
131 | assert fs.existsSync "/tmp/kd/kd-tests/kites/kitefoo2/manifest.json"
|
132 |
|
133 | assert fs.existsSync "/tmp/kd/kd-tests/kites/kitefoo2/kites/kitefoo3"
|
134 | assert fs.existsSync "/tmp/kd/kd-tests/kites/kitefoo2/kites/kitefoo3/manifest.json"
|
135 |
|
136 | assert fs.existsSync "/tmp/kd/kd-tests/kites/kitefoo2/kites/kitefoo3/kites/kitefoo4"
|
137 | assert fs.existsSync "/tmp/kd/kd-tests/kites/kitefoo2/kites/kitefoo3/kites/kitefoo4/manifest.json"
|
138 | .export(module) |
\ | No newline at end of file |