Как получить тесты для записи приборов с AngularJs, таких как vcr в Rails?
Я искал повсюду, я пытался повторить узел, но с транспортиром, но он не будет работать с селеном.
Я также пробовал vcr.js и сепию.
Как мне настроить мои тесты, чтобы они выполняли начальные вызовы, но сохраняли их в виде кассет, таких как vcr.
Приветствия.
1 ответ
Решение
Я настраивал сепию для использования с транспортиром. Это работает сейчас, вот что я сделал:
Я предполагаю, что вы уже настроили grunt-connect для запуска тестов транспортира.
Затем вам нужно дождаться события прослушивания события из конфигурации подключения:grunt.event.once('connect.test.listening', function)
И вот где вы будете настраивать сепию.
grunt.event.once('connect.test.listening', function(host, port) {
/**
* Configure sepia here
*/
var sepia = require('sepia').withSepiaServer();
// Use your custom configuration
sepia.configure({
verbose: true,
debug: true,
includeHeaderNames: false,
includeCookieNames: false
});
// I have some path/body content to filter configured in the vrc configuration
var bodyFilters = grunt.config('vcr.filters.body') || [];
var pathFilters = grunt.config('vcr.filters.path') || [];
var regexPath = function(string) {
var escapedString = string.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, '\\$&');
return new RegExp(escapedString);
};
// Filter path
_.map(pathFilters, function(filter) {
sepia.filter({
url: regexPath(filter.path),
urlFilter: function(url) {
return url.replace(filter.pattern, filter.replacement);
}
});
});
// Filter body content
_.map(bodyFilters, function(filter) {
sepia.filter({
url: regexPath(filter.path),
bodyFilter: function(body) {
return body.replace(filter.pattern, filter.replacement);
}
});
});
});
});