Запуск функций JavaScript с использованием execute_script от wallaby не работает

система

OSX v10.13.4 / Elixir v1.6.5 / OTP 19 / Phoenix 1.3.2 / Wallaby 0.19.2 / PhantomJS 2.1

вопрос

Следующий код работает в тестировании

execute_script(session, "localStorage.setItem('test', 'foo'); return localStorage.getItem('test');")

Тем не менее, если я вызываю точно такие же методы, которые находятся в функции с именем get_test() внутри app.js моего приложения Phoenix

  function get_test() {
    localStorage.setItem('test', 'foo'); 
    return localStorage.getItem('test');
  }

  window.get_test = get_test

И запустите следующее в моем наборе тестов

execute_script(session, "return get_test();")

я получил {:error, :obscured}

Я пробовал с селеном по тому же коду, и он работает. Однако, по некоторым причинам, с PhantomJS он, похоже, не находит функции, которые были созданы нами.

Я что-то пропустил? Я заметил, что в тестах для execute_script в wallaby нет тестов, которые вызывают специально созданные функции.

https://github.com/keathley/wallaby/blob/master/integration_test/cases/browser/execute_script_test.exs

Аналогичный тест https://github.com/keathley/wallaby/blob/master/integration_test/cases/browser/local_storage_test.exs

из которых я добавил следующее к local_storage_test чтобы убедиться, что я не сходил с ума

@function_script """
  function get_tester() {
    localStorage.setItem('tester', 'foo');
    return localStorage.getItem('tester');
  }

  return get_tester();
"""

session
  |> visit("index.html")
  |> execute_script(@function_script, fn(value) -> send self(), {:callback, value} end)

assert_received {:callback, "foo"}

и это прошло. Это явно что-то не так с моим приложением. Или конфиг фантома возможно.

ОБНОВИТЬ:

Хотя это и не упомянуто прямо - я сузил это до libsodim, не загружающегося должным образом фантомами. Вернуться к основам отладки. Ничего плохого в написании JS. Положительным моментом является то, что у меня теперь есть целая библиотека тестов, а также классные инструменты для тестирования.

0 ответов

Другие вопросы по тегам