@mblaney/holster 1.0.22 → 1.0.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -31,23 +31,51 @@ describe("holster.user.on", () => {
31
31
  })
32
32
 
33
33
  test("on for property then update - event", (t, done) => {
34
- // The property needs to exist before it can be listend to for updates.
34
+ // Listener doesn't get called for initial put.
35
+ const callback = data => {
36
+ assert.equal(data, "update")
37
+ user.get("key").off(callback)
38
+ done()
39
+ }
40
+ user.get("key").on(callback)
41
+
35
42
  user.get("key").put("value", err => {
36
43
  assert.equal(err, null)
37
44
 
38
- const callback = data => {
39
- assert.equal(data, "update")
40
- user.get("key").off(callback)
41
- done()
42
- }
43
- user.get("key").on(callback)
44
-
45
45
  user.get("key").put("update", err => {
46
46
  assert.equal(err, null)
47
47
  })
48
48
  })
49
49
  })
50
50
 
51
+ test("on for property then update - two listeners", (t, done) => {
52
+ let done1 = false
53
+ let done2 = false
54
+
55
+ const callback1 = data => {
56
+ assert.equal(data, "update")
57
+ user.get("two").off(callback1)
58
+ if (done2) done()
59
+ else done1 = true
60
+ }
61
+ user.get("two").on(callback1)
62
+
63
+ const callback2 = data => {
64
+ assert.equal(data, "update")
65
+ user.get("two").off(callback2)
66
+ if (done1) done()
67
+ else done2 = true
68
+ }
69
+ user.get("two").on(callback2)
70
+
71
+ user.get("two").put("value", err => {
72
+ assert.equal(err, null)
73
+ user.get("two").put("update", err => {
74
+ assert.equal(err, null)
75
+ })
76
+ })
77
+ })
78
+
51
79
  test("on for different property - no event", (t, done) => {
52
80
  user.get("key1").on(data => {
53
81
  console.log("should not be called for key1:", data)
@@ -92,12 +120,9 @@ describe("holster.user.on", () => {
92
120
  test("on for properties in for loop", (t, done) => {
93
121
  ;(async () => {
94
122
  for (let i = 0; i < 5; i++) {
95
- // Need to be careful putting user properties in a loop as they are
96
- // verified per node, so wait for each update to return.
97
- const err = await new Promise(res => {
98
- user.get("for" + i).put(i, res)
123
+ user.get("for" + i).put(i, err => {
124
+ assert.equal(err, null)
99
125
  })
100
- assert.equal(err, null)
101
126
  }
102
127
  })()
103
128
 
@@ -116,11 +141,9 @@ describe("holster.user.on", () => {
116
141
 
117
142
  setTimeout(async () => {
118
143
  for (let i = 0; i < 5; i++) {
119
- // Same as above put, wait for each update to return.
120
- const err = await new Promise(res => {
121
- user.get("for" + i).put("update" + i, res)
144
+ user.get("for" + i).put("update" + i, err => {
145
+ assert.equal(err, null)
122
146
  })
123
- assert.equal(err, null)
124
147
  }
125
148
  setTimeout(() => {
126
149
  if (count === 5) done()
@@ -88,12 +88,9 @@ describe("holster.user.put", () => {
88
88
  test("put and get values in for loop", (t, done) => {
89
89
  ;(async () => {
90
90
  for (let i = 0; i < 5; i++) {
91
- // Need to be careful putting user properties in a loop as they are
92
- // verified per node, so wait for each update to return.
93
- const err = await new Promise(res => {
94
- user.get("for" + i).put(i, res)
91
+ user.get("for" + i).put(i, err => {
92
+ assert.equal(err, null)
95
93
  })
96
- assert.equal(err, null)
97
94
  }
98
95
  })()
99
96