UNPKG

5.26 kBtext/coffeescriptView Raw
1helpers = require '../modules/common/helpers'
2vows = require 'vows'
3assert = require 'assert'
4fs = require 'fs-extra'
5KDKite = require '../lib/kdkite'
6
7vows
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 # ignore error
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 # we create a kite dependency tree here
43 # mykite
44 # \_ kitefoo1
45 # \_ kitefoo2
46 # \_ kitefoo3
47 # \_ kitefoo4
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