У меня есть пара снипетов, которые можно потенциально оформить как библиотеку технологий для enb. Однако подобного опыта пока не имею.
var path = require('path'),
EOL = require('os').EOL;
module.exports = require('enb/lib/build-flow').create()
.name('angular-templates')
.useFileList(['tmpl.html'])
.target('target', 'templates.html')
.justJoinFiles(function (filename, data) {
return '<script type="text/ng-template" id="' + filename.split(path.sep).pop() + '">' + EOL + data + EOL + '</script>';
})
.createTech();
var ngAnnotate = require("ng-annotate");
module.exports = require('enb/lib/build-flow').create()
.name('ng-annotate')
.defineRequiredOption('source')
.defineOption('target')
.target('target', '?.js')
.useSourceText('source')
.builder(function(source){
return ngAnnotate(source, { add : true }).src;
})
.createTech();
Что скажете? Надо ли это оформлять как библиотеку? @blond, поможешь?
Конечно оформляй в библиотеку :)
Если интересно как написать тесты — обращайся ;)
К себе пока или в инкубатор сразу стоит?
/сс @tadatuta
@Guria досыпал доступов, так что можешь публиковать сразу в инкубатор
done @blond Какую лучше версию enb в зависимости писать? За помощь с тестами буду благодарен.
@Guria :+1:
Последняя норм.
Можно посмотреть на тесты в enb-bem-techs или enb-bh.
Как писать тесты:
Я ещё не приступал к тестам. Правильно ли я понимаю, что теперь ещё следует смотреть в сторону mock-enb ?
@Guria, да, всё так. Там по смыслу, пока, ничего не изменилось, просто код вынесен в отдельный модуль и обновлены зависимости.
@blond Накидал минимальные заглушки для тестов. И прежде чем пытаться что-то тестировать решил сначала определить, что именно я буду тестировать. Если для
ng-templates
я придумал целых 3 теста, то сng-annotate
сложнее. Проверять работу подключаемой библиотеки? Или просто надо как-то убедиться что библиотека была использована?Ещё, кажется, я не очень удачно назвал свои технологии. В частности имя моей технологии совпадает с именем подключаемой библиотеки.
Если библиотека стабильна и код-обёртка просто использует её API, то я обычно проверяю только то, что это API выполняется. То, что результат должен быть правильным — ответственность тестов самой библиотеки.
Но если даже в патчевых версиях иногда что-нибудь ломается или за результат отвечает не только сама библиотека, но и код технологии — я стараюсь тестировать и то, что результат в итоге оказывается правильным.
Пример второго —
enb-stylus
. Чтобы не повторять все кейсы, тестируемые в самой библиотеке, можно попытаться запускать родные тесты — https://github.com/enb-make/enb-stylus/pull/61.Тут я врядли подскажу =)