chore(core): Port tests to ESM
This commit is contained in:
parent
8af23b9b94
commit
547d11569d
14 changed files with 77 additions and 48 deletions
83
packages/core/tests/attributes.test.mjs
Normal file
83
packages/core/tests/attributes.test.mjs
Normal file
|
@ -0,0 +1,83 @@
|
|||
import chai from "chai"
|
||||
import { Point } from "./dist/index.mjs"
|
||||
|
||||
const expect = chai.expect
|
||||
|
||||
const newAttr = () => new Point(0, 0).attributes;
|
||||
|
||||
const a = newAttr();
|
||||
it("Should set an attribute", () => {
|
||||
a.set('hold', 'me')
|
||||
expect(a.get("hold")).to.equal('me');
|
||||
});
|
||||
|
||||
it("Should remove an attribute", () => {
|
||||
a.remove('hold')
|
||||
expect(a.get("hold")).to.equal(false);
|
||||
});
|
||||
|
||||
it("Should only set an unset attribute", () => {
|
||||
a.setIfUnset('hold', 'me')
|
||||
expect(a.get("hold")).to.equal('me');
|
||||
a.setIfUnset('hold', 'thatDudeOverThere')
|
||||
expect(a.get("hold")).to.equal('me');
|
||||
});
|
||||
|
||||
it("Should return false when getting an unset attribute", () => {
|
||||
let a = newAttr();
|
||||
expect(a.get("test")).to.equal(false);
|
||||
});
|
||||
|
||||
it("Should render attributes correctly", () => {
|
||||
let a = newAttr()
|
||||
.set("class", "test")
|
||||
.add("class", "render")
|
||||
.set("transform", "scale(1)");
|
||||
expect(a.render()).to.equal(' class="test render" transform="scale(1)"');
|
||||
});
|
||||
|
||||
it("Should render attributes with given prefix only", () => {
|
||||
let a = newAttr()
|
||||
.set("class", "test")
|
||||
.add("class", "render")
|
||||
.add("data-text", "foo")
|
||||
.add("data-text", "bar")
|
||||
.add("data-mode", "test")
|
||||
.set("transform", "scale(1)");
|
||||
expect(a.renderIfPrefixIs("data-")).to.equal(' text="foo bar" mode="test"');
|
||||
});
|
||||
|
||||
it("Should return attributes as array", () => {
|
||||
let a = newAttr()
|
||||
.set("class", "test")
|
||||
.add("class", "render");
|
||||
expect(JSON.stringify(a.getAsArray("class"))).to.equal(
|
||||
JSON.stringify(["test", "render"])
|
||||
);
|
||||
expect(a.getAsArray("nope")).to.equal(false);
|
||||
});
|
||||
|
||||
it("Should render attributes as CSS", () => {
|
||||
let a = newAttr()
|
||||
.set("line-height", 1.2)
|
||||
.add("border", "1px solid red");
|
||||
expect(a.renderAsCss()).to.equal(" line-height:1.2; border:1px solid red;");
|
||||
});
|
||||
|
||||
it("Should return attributes as props and filter a prefix", () => {
|
||||
const a = newAttr()
|
||||
.set("line-height", 1.2)
|
||||
.add("border", "1px solid red")
|
||||
.set("data-text", "This is a test")
|
||||
.set("data-text-class", "center");
|
||||
const props = a.asPropsIfPrefixIs('data-')
|
||||
expect(props.text).to.equal("This is a test");
|
||||
expect(props['text-class']).to.equal("center");
|
||||
});
|
||||
|
||||
it("Should return attributes as props and handle special class case", () => {
|
||||
const a = newAttr().set("class", "fabric");
|
||||
const props = a.asPropsIfPrefixIs('')
|
||||
expect(props.className).to.equal("fabric");
|
||||
});
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue