braid-text 0.2.45 → 0.2.46
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.
- package/index.js +2 -2
- package/package.json +1 -1
- package/test/test.html +92 -0
package/index.js
CHANGED
|
@@ -426,7 +426,7 @@ braid_text.put = async (key, options) => {
|
|
|
426
426
|
// validate version: make sure we haven't seen it already
|
|
427
427
|
if (resource.actor_seqs[v[0]]?.has(v[1])) {
|
|
428
428
|
|
|
429
|
-
if (!options.validate_already_seen_versions) return
|
|
429
|
+
if (!options.validate_already_seen_versions) return { change_count }
|
|
430
430
|
|
|
431
431
|
// if we have seen it already, make sure it's the same as before
|
|
432
432
|
let updates = dt_get_patches(resource.doc, og_parents)
|
|
@@ -483,7 +483,7 @@ braid_text.put = async (key, options) => {
|
|
|
483
483
|
}
|
|
484
484
|
|
|
485
485
|
// we already have this version, so nothing left to do
|
|
486
|
-
return
|
|
486
|
+
return { change_count: change_count }
|
|
487
487
|
}
|
|
488
488
|
if (!resource.actor_seqs[v[0]]) resource.actor_seqs[v[0]] = new RangeSet()
|
|
489
489
|
resource.actor_seqs[v[0]].add_range(v[1] + 1 - change_count, v[1])
|
package/package.json
CHANGED
package/test/test.html
CHANGED
|
@@ -96,6 +96,98 @@ async function runTest(testName, testFunction, expectedResult) {
|
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
98
|
|
|
99
|
+
runTest(
|
|
100
|
+
"test PUTing a version that the server already has",
|
|
101
|
+
async () => {
|
|
102
|
+
var key = 'test-' + Math.random().toString(36).slice(2)
|
|
103
|
+
|
|
104
|
+
var r1 = await braid_fetch(`/${key}`, {
|
|
105
|
+
method: 'PUT',
|
|
106
|
+
version: ['hi-0'],
|
|
107
|
+
parents: [],
|
|
108
|
+
body: 'x'
|
|
109
|
+
})
|
|
110
|
+
|
|
111
|
+
var r2 = await braid_fetch(`/${key}`, {
|
|
112
|
+
method: 'PUT',
|
|
113
|
+
version: ['hi-0'],
|
|
114
|
+
parents: [],
|
|
115
|
+
body: 'x'
|
|
116
|
+
})
|
|
117
|
+
|
|
118
|
+
return r1.status + " " + r2.status
|
|
119
|
+
},
|
|
120
|
+
'200 200'
|
|
121
|
+
)
|
|
122
|
+
|
|
123
|
+
runTest(
|
|
124
|
+
"test validate_already_seen_versions with same version",
|
|
125
|
+
async () => {
|
|
126
|
+
var key = 'test-' + Math.random().toString(36).slice(2)
|
|
127
|
+
|
|
128
|
+
var r1 = await braid_fetch(`/eval`, {
|
|
129
|
+
method: 'PUT',
|
|
130
|
+
body: `void (async () => {
|
|
131
|
+
var resource = await braid_text.get_resource('/${key}')
|
|
132
|
+
|
|
133
|
+
var {change_count} = await braid_text.put(resource, { peer: "abc", version: ["hi-2"], parents: [], patches: [{unit: "text", range: "[0:0]", content: "XYZ"}], merge_type: "dt" })
|
|
134
|
+
|
|
135
|
+
res.end('' + change_count)
|
|
136
|
+
})()`
|
|
137
|
+
})
|
|
138
|
+
|
|
139
|
+
var r2 = await braid_fetch(`/eval`, {
|
|
140
|
+
method: 'PUT',
|
|
141
|
+
body: `void (async () => {
|
|
142
|
+
var resource = await braid_text.get_resource('/${key}')
|
|
143
|
+
|
|
144
|
+
var {change_count} = await braid_text.put(resource, { peer: "abc", version: ["hi-2"], parents: [], patches: [{unit: "text", range: "[0:0]", content: "XYZ"}], merge_type: "dt", validate_already_seen_versions: true })
|
|
145
|
+
|
|
146
|
+
res.end('' + change_count)
|
|
147
|
+
})()`
|
|
148
|
+
})
|
|
149
|
+
|
|
150
|
+
return (await r1.text()) + " " + (await r2.text())
|
|
151
|
+
},
|
|
152
|
+
'3 3'
|
|
153
|
+
)
|
|
154
|
+
|
|
155
|
+
runTest(
|
|
156
|
+
"test validate_already_seen_versions with modified version",
|
|
157
|
+
async () => {
|
|
158
|
+
var key = 'test-' + Math.random().toString(36).slice(2)
|
|
159
|
+
|
|
160
|
+
var r1 = await braid_fetch(`/eval`, {
|
|
161
|
+
method: 'PUT',
|
|
162
|
+
body: `void (async () => {
|
|
163
|
+
var resource = await braid_text.get_resource('/${key}')
|
|
164
|
+
|
|
165
|
+
var {change_count} = await braid_text.put(resource, { peer: "abc", version: ["hi-2"], parents: [], patches: [{unit: "text", range: "[0:0]", content: "XYZ"}], merge_type: "dt" })
|
|
166
|
+
|
|
167
|
+
res.end('' + change_count)
|
|
168
|
+
})()`
|
|
169
|
+
})
|
|
170
|
+
|
|
171
|
+
var r2 = await braid_fetch(`/eval`, {
|
|
172
|
+
method: 'PUT',
|
|
173
|
+
body: `void (async () => {
|
|
174
|
+
var resource = await braid_text.get_resource('/${key}')
|
|
175
|
+
|
|
176
|
+
try {
|
|
177
|
+
var {change_count} = await braid_text.put(resource, { peer: "abc", version: ["hi-2"], parents: [], patches: [{unit: "text", range: "[0:0]", content: "ABC"}], merge_type: "dt", validate_already_seen_versions: true })
|
|
178
|
+
|
|
179
|
+
res.end('' + change_count)
|
|
180
|
+
} catch (e) {
|
|
181
|
+
res.end(e.message)
|
|
182
|
+
}
|
|
183
|
+
})()`
|
|
184
|
+
})
|
|
185
|
+
|
|
186
|
+
return await r2.text()
|
|
187
|
+
},
|
|
188
|
+
'invalid update: different from previous update with same version'
|
|
189
|
+
)
|
|
190
|
+
|
|
99
191
|
runTest(
|
|
100
192
|
"test loading a previously saved resource",
|
|
101
193
|
async () => {
|