mithril-vndb/util/tests/test-censor.js
Isiah Meadows 34f4363357
Add m.censor, adjust m.route.Link to use it (#2538)
Also, restructure a few things for better code reuse.
2019-09-30 18:44:39 -04:00

238 lines
5.4 KiB
JavaScript

"use strict"
var o = require("../../ospec/ospec")
var censor = require("../../util/censor")
o.spec("censor", function() {
o.spec("magic missing, no extras", function() {
o("returns new object", function() {
var original = {one: "two"}
var censored = censor(original)
o(censored).notEquals(original)
o(censored).deepEquals({one: "two"})
})
o("does not modify original object", function() {
var original = {one: "two"}
censor(original)
o(original).deepEquals({one: "two"})
})
})
o.spec("magic present, no extras", function() {
o("returns new object", function() {
var original = {
one: "two",
key: "test",
oninit: "test",
oncreate: "test",
onbeforeupdate: "test",
onupdate: "test",
onbeforeremove: "test",
onremove: "test",
}
var censored = censor(original)
o(censored).notEquals(original)
o(censored).deepEquals({one: "two"})
})
o("does not modify original object", function() {
var original = {
one: "two",
key: "test",
oninit: "test",
oncreate: "test",
onbeforeupdate: "test",
onupdate: "test",
onbeforeremove: "test",
onremove: "test",
}
censor(original)
o(original).deepEquals({
one: "two",
key: "test",
oninit: "test",
oncreate: "test",
onbeforeupdate: "test",
onupdate: "test",
onbeforeremove: "test",
onremove: "test",
})
})
})
o.spec("magic missing, null extras", function() {
o("returns new object", function() {
var original = {one: "two"}
var censored = censor(original, null)
o(censored).notEquals(original)
o(censored).deepEquals({one: "two"})
})
o("does not modify original object", function() {
var original = {one: "two"}
censor(original, null)
o(original).deepEquals({one: "two"})
})
})
o.spec("magic present, null extras", function() {
o("returns new object", function() {
var original = {
one: "two",
key: "test",
oninit: "test",
oncreate: "test",
onbeforeupdate: "test",
onupdate: "test",
onbeforeremove: "test",
onremove: "test",
}
var censored = censor(original, null)
o(censored).notEquals(original)
o(censored).deepEquals({one: "two"})
})
o("does not modify original object", function() {
var original = {
one: "two",
key: "test",
oninit: "test",
oncreate: "test",
onbeforeupdate: "test",
onupdate: "test",
onbeforeremove: "test",
onremove: "test",
}
censor(original, null)
o(original).deepEquals({
one: "two",
key: "test",
oninit: "test",
oncreate: "test",
onbeforeupdate: "test",
onupdate: "test",
onbeforeremove: "test",
onremove: "test",
})
})
})
o.spec("magic missing, extras missing", function() {
o("returns new object", function() {
var original = {one: "two"}
var censored = censor(original, ["extra"])
o(censored).notEquals(original)
o(censored).deepEquals({one: "two"})
})
o("does not modify original object", function() {
var original = {one: "two"}
censor(original, ["extra"])
o(original).deepEquals({one: "two"})
})
})
o.spec("magic present, extras missing", function() {
o("returns new object", function() {
var original = {
one: "two",
key: "test",
oninit: "test",
oncreate: "test",
onbeforeupdate: "test",
onupdate: "test",
onbeforeremove: "test",
onremove: "test",
}
var censored = censor(original, ["extra"])
o(censored).notEquals(original)
o(censored).deepEquals({one: "two"})
})
o("does not modify original object", function() {
var original = {
one: "two",
key: "test",
oninit: "test",
oncreate: "test",
onbeforeupdate: "test",
onupdate: "test",
onbeforeremove: "test",
onremove: "test",
}
censor(original, ["extra"])
o(original).deepEquals({
one: "two",
key: "test",
oninit: "test",
oncreate: "test",
onbeforeupdate: "test",
onupdate: "test",
onbeforeremove: "test",
onremove: "test",
})
})
})
o.spec("magic missing, extras present", function() {
o("returns new object", function() {
var original = {
one: "two",
extra: "test",
}
var censored = censor(original, ["extra"])
o(censored).notEquals(original)
o(censored).deepEquals({one: "two"})
})
o("does not modify original object", function() {
var original = {
one: "two",
extra: "test",
}
censor(original, ["extra"])
o(original).deepEquals({
one: "two",
extra: "test",
})
})
})
o.spec("magic present, extras present", function() {
o("returns new object", function() {
var original = {
one: "two",
extra: "test",
key: "test",
oninit: "test",
oncreate: "test",
onbeforeupdate: "test",
onupdate: "test",
onbeforeremove: "test",
onremove: "test",
}
var censored = censor(original, ["extra"])
o(censored).notEquals(original)
o(censored).deepEquals({one: "two"})
})
o("does not modify original object", function() {
var original = {
one: "two",
extra: "test",
key: "test",
oninit: "test",
oncreate: "test",
onbeforeupdate: "test",
onupdate: "test",
onbeforeremove: "test",
onremove: "test",
}
censor(original, ["extra"])
o(original).deepEquals({
one: "two",
extra: "test",
key: "test",
oninit: "test",
oncreate: "test",
onbeforeupdate: "test",
onupdate: "test",
onbeforeremove: "test",
onremove: "test",
})
})
})
})