73 lines
3.8 KiB
JavaScript
73 lines
3.8 KiB
JavaScript
import freesewing from "@freesewing/core";
|
|
import { version } from "../package.json";
|
|
let chai = require("chai");
|
|
let expect = chai.expect;
|
|
chai.use(require('chai-string'));
|
|
let plugin = require("../dist/index.js");
|
|
|
|
describe("Banner Plugin", () => {
|
|
|
|
it("Should set the plugin name:version attribute", () => {
|
|
let pattern = new freesewing.Pattern().use(plugin);
|
|
pattern.render();
|
|
expect(pattern.svg.attributes.get("freesewing:plugin-banner")).to.equal(
|
|
version
|
|
);
|
|
});
|
|
|
|
let pattern = new freesewing.Pattern();
|
|
pattern.use(plugin).render();
|
|
pattern.parts.test = new pattern.Part();
|
|
let { Point, points, Path, paths, macro } = pattern.parts.test.shorthand();
|
|
|
|
it("Should add repeating text to a path", () => {
|
|
pattern.parts.test.points.from = new pattern.Point(30,30);
|
|
pattern.parts.test.points.to = new pattern.Point(30,100);
|
|
pattern.parts.test.paths.example = new Path()
|
|
.move(pattern.parts.test.points.from)
|
|
.line(pattern.parts.test.points.to);
|
|
|
|
macro("banner", {
|
|
text:"foo",
|
|
path:"example"
|
|
});
|
|
let c = pattern.parts.test.paths.example;
|
|
expect(c.attributes.get("data-text")).to.equal("f o o          f o o          f o o          f o o          f o o          f o o          f o o          f o o          f o o          f o o          f o o          f o o          f o o          f o o          f o o          f o o          f o o          f o o          f o o          f o o          f o o          f o o          f o o          f o o          f o o         ");
|
|
expect(c.attributes.get("data-text-class")).to.equal("center");
|
|
expect(c.attributes.get("data-text-dy")).to.equal("-1");
|
|
});
|
|
|
|
it("Number of spaces should be configurable", () => {
|
|
pattern.parts.test.points.from = new pattern.Point(60,30);
|
|
pattern.parts.test.points.to = new pattern.Point(60,100);
|
|
pattern.parts.test.paths.example2 = new Path()
|
|
.move(pattern.parts.test.points.from)
|
|
.line(pattern.parts.test.points.to);
|
|
|
|
macro("banner", {
|
|
text:"foo",
|
|
path:"example2",
|
|
spaces:2,
|
|
repeat:2
|
|
});
|
|
let c = pattern.parts.test.paths.example2;
|
|
expect(c.attributes.get("data-text")).to.equal("f o o    f o o   ");
|
|
});
|
|
|
|
it("Number of repetitions should be configurable", () => {
|
|
pattern.parts.test.points.from = new pattern.Point(90,30);
|
|
pattern.parts.test.points.to = new pattern.Point(90,100);
|
|
pattern.parts.test.paths.example3 = new Path()
|
|
.move(pattern.parts.test.points.from)
|
|
.line(pattern.parts.test.points.to);
|
|
|
|
macro("banner", {
|
|
text:"foo",
|
|
path:"example3",
|
|
spaces:1,
|
|
repeat:4
|
|
});
|
|
let c = pattern.parts.test.paths.example3;
|
|
expect(c.attributes.get("data-text")).to.equal("f o o   f o o   f o o   f o o  ");
|
|
});
|
|
});
|