Files: b5cb4112bbeaaa34f0d5faa38670426dc58971bf / tests / index.js
2223 bytesRaw
1 | const tape = require('tape') |
2 | const IPFS = require('ipfs') |
3 | const Hypervisor = require('../') |
4 | const Message = require('primea-message') |
5 | |
6 | const node = new IPFS() |
7 | node.on('error', err => { |
8 | console.log(err) |
9 | }) |
10 | |
11 | node.on('start', () => { |
12 | tape('basic', async t => { |
13 | const message = new Message() |
14 | const state = { |
15 | messages: [], |
16 | id: { |
17 | '/': { |
18 | nonce: new Buffer([0]), |
19 | parent: { |
20 | '/': null |
21 | } |
22 | } |
23 | }, |
24 | type: 'test', |
25 | vm: { |
26 | '/': { |
27 | ports: {} |
28 | } |
29 | } |
30 | } |
31 | const expectedState = { '/': 'zdpuAnCsh9tVFa3asqkC7iNkwK6dYyZqJDxQrB7PMt8foLRKJ' } |
32 | |
33 | class testVMContainer { |
34 | run (m) { |
35 | t.true(m === message, 'should recive a message') |
36 | } |
37 | } |
38 | |
39 | const hypervisor = new Hypervisor({ |
40 | dag: node.dag |
41 | }) |
42 | hypervisor.addVM('test', testVMContainer) |
43 | |
44 | await hypervisor.send(state, message) |
45 | await hypervisor.createStateRoot(state, Infinity) |
46 | t.deepEquals(state, expectedState, 'expected') |
47 | t.end() |
48 | }) |
49 | |
50 | tape('one child contract', async t => { |
51 | t.end() |
52 | node.stop(() => { |
53 | process.exit() |
54 | }) |
55 | |
56 | const message = new Message() |
57 | class testVMContainer { |
58 | constuctor (kernel) { |
59 | this.kernel = kernel |
60 | } |
61 | |
62 | run (m) { |
63 | this.kernel.ports.create('child', 'test2', null) |
64 | this.kernek.send('child', m) |
65 | } |
66 | } |
67 | |
68 | class testVMContainer2 { |
69 | run (m) { |
70 | t.true(m === message, 'should recive a message') |
71 | } |
72 | } |
73 | |
74 | const state = { |
75 | messages: [], |
76 | id: { |
77 | '/': { |
78 | nonce: new Buffer([0]), |
79 | parent: { |
80 | '/': null |
81 | } |
82 | } |
83 | }, |
84 | type: 'test', |
85 | vm: { |
86 | '/': { |
87 | ports: {} |
88 | } |
89 | } |
90 | } |
91 | |
92 | const hypervisor = new Hypervisor({ |
93 | dag: node.dag |
94 | }) |
95 | hypervisor.addVM('test', testVMContainer) |
96 | |
97 | await hypervisor.send(state, message) |
98 | await hypervisor.createStateRoot(state, Infinity) |
99 | t.deepEquals(state, expectedState, 'expected') |
100 | t.end() |
101 | // const message = new Message({ |
102 | // type: 'create', |
103 | // path: 'first', |
104 | // data: jsCode |
105 | // }) |
106 | // hypervisor.send(port, message) |
107 | |
108 | }) |
109 | }) |
110 |
Built with git-ssb-web