From 42f9ea237a344ea6497b3cff825e10d58198c520 Mon Sep 17 00:00:00 2001 From: ColonelParrot <65585002+ColonelParrot@users.noreply.github.com> Date: Mon, 8 May 2023 17:29:05 -0400 Subject: [PATCH] Add tests --- test/tests.js | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 test/tests.js diff --git a/test/tests.js b/test/tests.js new file mode 100644 index 0000000..1202864 --- /dev/null +++ b/test/tests.js @@ -0,0 +1,74 @@ +console.log("RUNNING JSCANIFY TESTS"); +console.log("Warning: This may take a bit"); + +const { Canvas, createCanvas, Image, ImageData, loadImage } = require("canvas"); +const { writeFileSync, unlinkSync, existsSync } = require("fs"); +const assert = require("assert"); + +const jscanify = require("../src/jscanify-node"); +const path = require("path"); + +const outputPaths = { + highlight: __dirname + "/output/highlighted.jpg", + extracted: __dirname + "/output/extracted.jpg", +}; + +const TEST_IMAGE_PATH = path.join( + __dirname, + "..", + "docs", + "images", + "test", + "test.png" +); + +function setup() { + console.log("=== setting up tests ==="); + console.log("Deleting previously generated images"); + Object.values(outputPaths).forEach((path) => { + if (existsSync(path)) { + unlinkSync(path); + } + }); +} + +function test() { + const scanner = new jscanify(); + + console.log("=== beginning tests ==="); + console.log("loading OpenCV.js..."); + scanner.loadOpenCV(function (cv) { + console.log("Finished loading OpenCV.js"); + describe("feature tests", function (done) { + it("should highlight paper", function (done) { + const highlighted = scanner.highlightPaper(testImage); + writeFileSync( + outputPaths.highlight, + highlighted.toBuffer("image/jpeg") + ); + + assert.ok(existsSync(outputPaths.highlight)); + done() + }); + + it("should extract paper", function (done) { + scanner.extractPaper(testImage, 386, 500, function (extracted) { + writeFileSync( + outputPaths.extracted, + extracted.toBuffer("image/jpeg") + ); + + assert.ok(existsSync(outputPaths.extracted)); + done(); + }); + }); + }); + }); +} + +let testImage; +loadImage(TEST_IMAGE_PATH).then(function (image) { + testImage = image; + setup(); + test(); +});