git ssb

0+

wanderer🌟 / js-primea-hypervisor



Tree: 50a0ebc04208fbb22e6da71e180399a8fc00b3a3

Files: 50a0ebc04208fbb22e6da71e180399a8fc00b3a3 / tests / index.js

1875 bytesRaw
1const tape = require('tape')
2const IPFS = require('ipfs')
3const Hypervisor = require('../')
4const Message = require('primea-message')
5
6const node = new IPFS()
7node.on('error', err => {
8 console.log(err)
9})
10
11node.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 try {
40 const hypervisor = new Hypervisor({
41 dag: node.dag
42 })
43 hypervisor.addVM('test', testVMContainer)
44
45 await hypervisor.send(state, message)
46 await hypervisor.createStateRoot(state, Infinity)
47 console.log('state root')
48 t.deepEquals(state, expectedState, 'expected')
49 t.end()
50 } catch (e) {
51 console.log(e)
52 }
53 })
54
55 tape('one child contract', t => {
56 t.end()
57 node.stop(() => {
58 process.exit()
59 })
60
61 const message = new Message()
62 class testVMContainer {
63 constuctor (kernel) {
64 this.kernel = kernel
65 }
66
67 run (m) {
68
69 }
70 }
71
72 // const state = {
73 // id: {},
74 // ports: {
75 // first: {
76 // id: {
77 // nonce: 1,
78 // parent: 'hash'
79 // },
80 // code: 'js code',
81 // type: 'test',
82 // ports: {
83
84 // }
85 // }
86 // }
87 // }
88 // const message = new Message({
89 // type: 'create',
90 // path: 'first',
91 // data: jsCode
92 // })
93 // hypervisor.send(port, message)
94
95 })
96})
97

Built with git-ssb-web