Skip to content
This repository was archived by the owner on Mar 6, 2018. It is now read-only.

Commit 946f032

Browse files
committed
start adding doc and expected to sqush tests
1 parent d1a4255 commit 946f032

File tree

1 file changed

+56
-16
lines changed

1 file changed

+56
-16
lines changed

test/squash_same_path.js

Lines changed: 56 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,23 @@
22

33
import assert from 'assert'
44
import squash from '../lib/squash'
5+
import apply from '../lib/apply'
6+
import {clone} from 'json8'
57

68
/* eslint comma-dangle: 0 */
79

8-
function test(obj1, obj2) {
9-
return assert.deepEqual(squash(obj1), obj2)
10+
function test(patch, squashed, doc, expected) {
11+
assert.deepEqual(squash(patch), squashed)
12+
13+
14+
if (doc) {
15+
assert.deepEqual(apply(clone(doc), patch).doc, apply(clone(doc), squashed).doc)
16+
}
17+
18+
if (expected) {
19+
assert.deepEqual(apply(clone(doc), patch).doc, expected)
20+
assert.deepEqual(apply(clone(doc), squashed).doc, expected)
21+
}
1022
}
1123

1224
/*
@@ -20,15 +32,19 @@ test(
2032
],
2133
[
2234
{"path": "/foo", "op": "add", "value": "bar"}
23-
]
35+
],
36+
{},
37+
{"foo": "bar"}
2438
)
2539
// add - remove
2640
test(
2741
[
2842
{"path": "/foo", "op": "add", "value": "lulz"},
2943
{"path": "/foo", "op": "remove"}
3044
],
31-
[]
45+
[],
46+
{},
47+
{}
3248
)
3349
// add - replace
3450
test(
@@ -38,7 +54,9 @@ test(
3854
],
3955
[
4056
{"path": "/foo", "op": "add", "value": "bar"}
41-
]
57+
],
58+
{},
59+
{"foo": "bar"}
4260
)
4361
// add - move to
4462
test(
@@ -48,7 +66,9 @@ test(
4866
],
4967
[
5068
{"path": "/foo", "op": "move", "from": "/bar"}
51-
]
69+
],
70+
{"bar": "lulz"},
71+
{"foo": "lulz"}
5272
)
5373
// // add - move from // FIXME this could resolve to [{"op": "add", "path": "/bar", "value": "lulz"}]
5474
test(
@@ -59,7 +79,9 @@ test(
5979
[
6080
{"path": "/foo", "op": "add", "value": "lulz"},
6181
{"path": "/bar", "op": "move", "from": "/foo"}
62-
]
82+
],
83+
{},
84+
{"bar": "lulz"}
6385
)
6486
// add - copy to
6587
test(
@@ -69,7 +91,9 @@ test(
6991
],
7092
[
7193
{"path": "/foo", "op": "copy", "from": "/bar"}
72-
]
94+
],
95+
{"bar": "lulz"},
96+
{"bar": "lulz", "foo": "lulz"}
7397
)
7498
// add - copy from
7599
test(
@@ -80,7 +104,9 @@ test(
80104
[
81105
{"path": "/foo", "op": "add", "value": "lulz"},
82106
{"path": "/bar", "op": "copy", "from": "/foo"}
83-
]
107+
],
108+
{},
109+
{"foo": "lulz", "bar": "lulz"}
84110
)
85111
// add - test
86112
test(
@@ -91,7 +117,9 @@ test(
91117
[
92118
{"path": "/foo", "op": "add", "value": "lulz"},
93119
{"path": "/foo", "op": "test", "value": "lulz"}
94-
]
120+
],
121+
{},
122+
{"foo": "lulz"}
95123
)
96124

97125
/*
@@ -105,7 +133,9 @@ test(
105133
],
106134
[
107135
{"path": "/foo", "op": "add", "value": "bar"}
108-
]
136+
],
137+
{"foo": "lulz"},
138+
{"foo": "bar"}
109139
)
110140
// // remove - remove // FIXME invalid patch ...
111141
// test(
@@ -137,7 +167,9 @@ test(
137167
],
138168
[
139169
{"path": "/foo", "op": "move", "from": "/bar"}
140-
]
170+
],
171+
{"foo": "cat", "bar": "dog"},
172+
{"foo": "dog"}
141173
)
142174
// // remove - move from // FIXME invalid patch
143175
// test(
@@ -157,7 +189,9 @@ test(
157189
],
158190
[
159191
{"path": "/foo", "op": "copy", "from": "/bar"}
160-
]
192+
],
193+
{"foo": "turtle", "bar": "dog"},
194+
{"foo": "dog", "bar": "dog"}
161195
)
162196
// // remove - copy from // FIXME invalid patch
163197
// test(
@@ -193,15 +227,21 @@ test(
193227
],
194228
[
195229
{"path": "/foo", "op": "add", "value": "bar"}
196-
]
230+
],
231+
{"foo": "cat"},
232+
{"foo": "bar"}
197233
)
198-
// replace - remove
234+
// replace - remove // FIXAAAAAAAAAAA
199235
test(
200236
[
201237
{"path": "/foo", "op": "replace", "value": "lulz"},
202238
{"path": "/foo", "op": "remove"}
203239
],
204-
[]
240+
[
241+
{"path": "/foo", "op": "remove"}
242+
],
243+
{"foo": "cat"},
244+
{}
205245
)
206246
// replace - replace
207247
test(

0 commit comments

Comments
 (0)