Skip to content

Commit 783a2a2

Browse files
committed
test: add linePosition parser tests
1 parent 4bc6952 commit 783a2a2

File tree

2 files changed

+25
-4
lines changed

2 files changed

+25
-4
lines changed

src/components/optionsParser.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ export const calcThickness = (thickness, circleSize) => {
5454
return thickness.toString().includes("%") ? (value * circleSize) / 100 : value;
5555
};
5656

57-
const parseLinePosition = (linePosition) => {
57+
export const linePositionParser = (linePosition) => {
5858
const [position, offset] = linePosition.toString().split(" ");
5959
return {
6060
position,
@@ -71,7 +71,7 @@ export const parseOptions = (options) => ({
7171
globalDot: dotParser(options.globalDot, options.size),
7272
dash: dashParser(options.dash),
7373
lineMode: lineModeParser(options.lineMode, options.multiple),
74-
linePosition: parseLinePosition(options.linePosition),
75-
emptyLinePosition: parseLinePosition(options.emptyLinePosition),
74+
linePosition: linePositionParser(options.linePosition),
75+
emptyLinePosition: linePositionParser(options.emptyLinePosition),
7676
animation: animationParser(options.animation),
7777
});

tests/unit/container.spec.js

+22-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { mount } from "@vue/test-utils";
33
import VueEllipseProgress from "@/components/VueEllipseProgress.vue";
44
import CircleContainer from "@/components/Circle/CircleContainer.vue";
55
import Counter from "@/components/Counter.vue";
6-
import { animationParser, dotParser, dashParser, lineModeParser } from "@/components/optionsParser";
6+
import { animationParser, dotParser, dashParser, lineModeParser, linePositionParser } from "@/components/optionsParser";
77
import props from "@/components/interface";
88

99
const factory = (propsData, slots = {}) => {
@@ -348,5 +348,26 @@ describe("[ EllipseProgressContainer.vue ]", () => {
348348
expect(offset).to.equal(0);
349349
});
350350
});
351+
describe("#linePosition parser", () => {
352+
it("parses default value correctly", () => {
353+
const defaultLineMode = {
354+
position: "center",
355+
offset: 0,
356+
};
357+
const { position, offset } = linePositionParser(props.linePosition.default);
358+
expect(position).to.equal(defaultLineMode.position);
359+
expect(offset).to.equal(defaultLineMode.offset);
360+
});
361+
it("parses value correctly", () => {
362+
const { position, offset } = linePositionParser("in 10");
363+
expect(position).to.equal("in");
364+
expect(offset).to.equal(10);
365+
});
366+
it("applies default offset correctly", () => {
367+
const { position, offset } = lineModeParser("out");
368+
expect(position).to.equal("out");
369+
expect(offset).to.equal(0);
370+
});
371+
});
351372
});
352373
});

0 commit comments

Comments
 (0)