You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
koreader/spec/unit/exporter_plugin_main_spec.lua

97 lines
3.4 KiB
Lua

describe("Exporter plugin module", function()
local readerui
local sample_clippings, sample_epub
local DocumentRegistry, Screen
setup(function()
require("commonrequire")
local ReaderUI = require("apps/reader/readerui")
DocumentRegistry = require("document/documentregistry")
Screen = require("device").screen
sample_epub = "spec/front/unit/data/juliet.epub"
readerui = ReaderUI:new {
dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_epub),
}
sample_clippings = {
["Title1"] = {
[1] = {
[1] = {
["page"] = 6,
["time"] = 1578946897,
["sort"] = "highlight",
["text"] = "Some important stuff 1",
["drawer"] = "lighten"
}
},
[2] = {
[1] = {
["page"] = 13,
["time"] = 1578946903,
["sort"] = "highlight",
["text"] = "Some important stuff 2",
["drawer"] = "lighten"
}
},
["file"] = "path/to/title1",
["exported"] = {
["txt"] = true,
["html"] = true,
},
["title"] = "Title1"
},
["Title2"] = {
[1] = {
[1] = {
["page"] = 233,
["time"] = 1578946918,
["sort"] = "highlight",
["text"] = "Some important stuff 3",
["drawer"] = "lighten"
}
},
[2] = {
[1] = {
["page"] = 237,
["time"] = 1578947501,
["sort"] = "highlight",
["text"] = "",
["drawer"] = "lighten",
["image"] = {
["hash"] = "cb7b40a63afc89f0aa452f2b655877e6",
["png"] = "Binary Encoding of image"
},
}
},
["file"] = "path/to/title2",
["exported"] = {
},
["title"] = "Title2"
},
}
end)
teardown(function()
readerui:onClose()
end)
it("should write clippings to a timestamped txt file", function()
local timestamp = os.time()
readerui.exporter.targets["text"].timestamp = timestamp
local exportable = { sample_clippings.Title1 }
local file_path = readerui.exporter.targets["text"]:getFilePath(exportable)
readerui.exporter.targets["text"]:export(exportable)
local f = io.open(file_path, "r")
assert.is.truthy(string.find(f:read("*all"), "Some important stuff 1"))
f:close()
os.remove(file_path)
end)
it("should fail to export to non configured targets", function()
local ok = readerui.exporter.targets["joplin"]:export(sample_clippings)
assert.not_truthy(ok)
ok = readerui.exporter.targets["readwise"]:export(sample_clippings)
assert.not_truthy(ok)
end)
end)