Мне нужно протестировать этот фильтр с помощью Jest. любая помощь? мой код выглядит следующим образом:
import Vue from "vue";
Vue.filter("truncate", (text, length, clamp) => {
text = text || "";
clamp = clamp || "...";
length = length || 30;
if (text.length <= length) return text;
let tcText = text.slice(0, length - clamp.length);
let last = tcText.length - 1;
while (last > 0 && tcText[last] !== " " && tcText[last] !== clamp[0])
last -= 1;
// Fix for case when text dont have any `space` last = last || length - clamp.length;
tcText = tcText.slice(0, last);
return tcText + clamp;
});
0
user10441050
23 Окт 2018 в 14:51
2 ответа
Лучший ответ
Поскольку вы используете глобальный фильтр, вы можете использовать отдельную функцию и легко импортировать ее в свой тест.
Сначала разделите фильтр:
export const truncate = (text, length, clamp) => {
text = text || "";
clamp = clamp || "...";
length = length || 30;
if (text.length <= length) return text;
let tcText = text.slice(0, length - clamp.length);
let last = tcText.length - 1;
while (last > 0 && tcText[last] !== " " && tcText[last] !== clamp[0])
last -= 1;
// Fix for case when text dont have any `space` last = last || length - clamp.length;
tcText = tcText.slice(0, last);
return tcText + clamp;
};
Vue.filter("truncate", truncate);
Затем импортируйте и используйте эту функцию в своем тесте, например. грамм.:
import { truncate } from '../filters.js';
describe("filter") {
it("truncates the text") {
expect(truncate("your text", 5, "your clamp")).toEqual("expected")
}
}
0
Bennett Dams
23 Окт 2018 в 12:07
Вот как я
Truncate.js
import Vue from 'vue'
export const truncate = (text, length, clamp) => {
text = text || "";
clamp = clamp || "...";
length = length || 30;
if (text.length <= length) return text;
let tcText = text.slice(0, length - clamp.length);
let last = tcText.length - 1;
while (last > 0 && tcText[last] !== " " && tcText[last] !== clamp[0])
last -= 1;
// Fix for case when text dont have any `space` last = last || length - clamp.length;
tcText = tcText.slice(0, last);
return tcText + clamp;
};
Vue.filter("truncate", truncate);
И вот тестовый код:
import Vue from 'vue'
import { truncate } from '@/filters/truncate.js'
describe("truncate",() =>{
it("truncates the text", ()=> {
expect(truncate("putSomeTextHere", 5, "...")).toEqual("pu...");
});
});
0
Rizk Meriouli
25 Окт 2018 в 19:44
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.