Skip to content

Commit

Permalink
test(core): Add busted test for the CSL engine
Browse files Browse the repository at this point in the history
  • Loading branch information
Omikhleia authored and Didier Willis committed Sep 16, 2024
1 parent c775542 commit a4f380d
Showing 1 changed file with 68 additions and 0 deletions.
68 changes: 68 additions & 0 deletions csl/spec/csl_spec.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
SILE = require("core.sile")

local CslLocale = require("csl.core.locale").CslLocale
local CslStyle = require("csl.core.style").CslStyle
local CslEngine = require("csl.core.engine").CslEngine

describe("CSL engine", function ()
local locale, err1 = CslLocale.read("csl/locales/locales-en-US.xml")
local style, err2 = CslStyle.read("csl/styles/chicago-author-date.csl")

local cslentryJungle = {
type = "paper-conference",
["citation-key"] = "jungle2024",
["citation-number"] = 1,
author = {
{
family = "Smith",
["family-short"] = "S",
given = "George",
["given-short"] = "G",
}
},
title = "Article title",
page = "10-20",
issued = {
year = "2024"
},
publisher = "Publisher",
["publisher-place"] = "Place",
volume = "10",
editor = {
{
family = "Doe",
["family-short"] = "D",
given = "Jane",
["given-short"] = "J",
}
},
locator = {
label = "page",
value = "30-35"
},
["collection-number"] = "3",
["collection-title"] = "Series",
["container-title"] = "Book Title",
}

it("should parse locale and style", function ()
assert.is.falsy(err1)
assert.is.falsy(err2)
assert.is.truthy(locale)
assert.is.truthy(style)
end)

it("should render a citation", function ()
local engine = CslEngine(style, locale)
local citation = engine:cite(cslentryJungle)
assert.is.equal("(Smith 2024, 30–35)", citation)
end)

it ("should render a reference", function ()
local engine = CslEngine(style, locale)
local reference = engine:reference(cslentryJungle)
assert.is.equal(
"Smith, George. 2024. “Article title.” In <em>Book Title,</em> edited by Jane Doe, 10:10–20. Series 3. Place: Publisher.",
reference)
end)
end)

0 comments on commit a4f380d

Please sign in to comment.