Как получить тесты для записи приборов с 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);
        }
      });
    });
  });
});
Другие вопросы по тегам