Gérer le statut draft pour Lemmy et la météo
This commit is contained in:
63
tools/tests/publication.test.js
Normal file
63
tools/tests/publication.test.js
Normal file
@@ -0,0 +1,63 @@
|
||||
const test = require("node:test");
|
||||
const assert = require("node:assert/strict");
|
||||
const {
|
||||
parseBoolean,
|
||||
isDraftValue,
|
||||
isEffectivelyPublished,
|
||||
isEffectivelyPublishedDocument,
|
||||
} = require("../lib/publication");
|
||||
|
||||
test("parseBoolean converts common boolean representations", () => {
|
||||
assert.equal(parseBoolean(true), true);
|
||||
assert.equal(parseBoolean(false), false);
|
||||
assert.equal(parseBoolean("true"), true);
|
||||
assert.equal(parseBoolean("TRUE"), true);
|
||||
assert.equal(parseBoolean("1"), true);
|
||||
assert.equal(parseBoolean("on"), true);
|
||||
assert.equal(parseBoolean("false"), false);
|
||||
assert.equal(parseBoolean("0"), false);
|
||||
assert.equal(parseBoolean("off"), false);
|
||||
assert.equal(parseBoolean(""), null);
|
||||
assert.equal(parseBoolean("unknown"), null);
|
||||
assert.equal(parseBoolean(1), null);
|
||||
});
|
||||
|
||||
test("isDraftValue returns true only for explicit draft values", () => {
|
||||
assert.equal(isDraftValue(true), true);
|
||||
assert.equal(isDraftValue("true"), true);
|
||||
assert.equal(isDraftValue("yes"), true);
|
||||
assert.equal(isDraftValue(false), false);
|
||||
assert.equal(isDraftValue("false"), false);
|
||||
assert.equal(isDraftValue(undefined), false);
|
||||
});
|
||||
|
||||
test("isEffectivelyPublished excludes draft frontmatter", () => {
|
||||
assert.equal(isEffectivelyPublished({ draft: true }), false);
|
||||
assert.equal(isEffectivelyPublished({ draft: "true" }), false);
|
||||
assert.equal(isEffectivelyPublished({ draft: false }), true);
|
||||
assert.equal(isEffectivelyPublished({ title: "Article" }), true);
|
||||
assert.equal(isEffectivelyPublished(null), true);
|
||||
});
|
||||
|
||||
test("isEffectivelyPublishedDocument supports YAML-like get()", () => {
|
||||
const docDraft = {
|
||||
get(key) {
|
||||
if (key === "draft") {
|
||||
return true;
|
||||
}
|
||||
return null;
|
||||
},
|
||||
};
|
||||
const docPublished = {
|
||||
get(key) {
|
||||
if (key === "draft") {
|
||||
return false;
|
||||
}
|
||||
return null;
|
||||
},
|
||||
};
|
||||
|
||||
assert.equal(isEffectivelyPublishedDocument(docDraft), false);
|
||||
assert.equal(isEffectivelyPublishedDocument(docPublished), true);
|
||||
assert.equal(isEffectivelyPublishedDocument(null), true);
|
||||
});
|
||||
Reference in New Issue
Block a user