Skip to content

Commit 8e75ab0

Browse files
committed
improve JavaScript shared memory keys function
fix tests
1 parent 46e7f04 commit 8e75ab0

File tree

4 files changed

+10
-2
lines changed

4 files changed

+10
-2
lines changed

engine/engine.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ func NewEngine(opts ...Options) *Engine {
5757
scripts: make(map[string]*scriptHost),
5858
scheduler: NewDefaultScheduler(),
5959
logger: newLogger(log.StandardLogger()),
60+
store: &Store{data: make(map[string]any)},
6061
}
6162
for _, opt := range opts {
6263
opt(e)

engine/enginetest/host.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,9 @@ func (h *Host) KafkaClient() common.KafkaClient {
141141
}
142142

143143
func (h *Host) Store() common.Store {
144+
if h.StoreTest == nil {
145+
h.StoreTest = &Store{data: make(map[string]any)}
146+
}
144147
return h.StoreTest
145148
}
146149

js/mokapi/shared.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package mokapi
22

33
import (
44
"mokapi/engine/common"
5+
"sort"
56
"sync"
67
)
78

@@ -70,10 +71,11 @@ func (m *SharedMemory) Update(key string, fn func(v any) any) any {
7071
func (m *SharedMemory) Keys() []string {
7172
m.m.RLock()
7273
defer m.m.RUnlock()
73-
var keys []string
74+
keys := make([]string, 0, len(m.data))
7475
for k := range m.data {
7576
keys = append(keys, k)
7677
}
78+
sort.Strings(keys)
7779
return keys
7880
}
7981

js/mokapi/shared_test.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,17 +145,19 @@ func TestModule_Shared(t *testing.T) {
145145
_, err := vm1.RunString(`
146146
const m = require('mokapi');
147147
m.shared.set('foo', 123);
148+
m.shared.set('1', '-');
148149
`)
149150
r.NoError(t, err)
150151

151152
v, err := vm2.RunString(`
152153
const m = require('mokapi');
153154
m.shared.set('bar', undefined);
155+
m.shared.set('100', '-');
154156
m.shared.keys();
155157
`)
156158
r.NoError(t, err)
157159

158-
r.Equal(t, []string{"foo", "bar"}, v.Export())
160+
r.Equal(t, []string{"1", "100", "bar", "foo"}, v.Export())
159161
},
160162
},
161163
{

0 commit comments

Comments
 (0)