undefined | 0 | ReferenceError: Строгий режим запрещает неявное создание глобального свойства 'csrf_token'

Итак, это была довольно интересная проблема, с которой я столкнулся.

В настоящее время я создаю приложение backbone.js - Rails. Как правило, просто построение этого в учебных целях. Я (как любой хороший разработчик рельсов) стараюсь изо всех сил в TDD / BDD, и я столкнулся с проблемой с капибарой.

У меня есть спецификация интеграции, которая просто проверяет работоспособность root_path (запускается история Backbone, отображается начальная информация и т. Д.).

require 'spec_helper'

describe "RentalProperties", js: true do
  describe "GET /" do
    it "should show a list of properties" do
      visit root_path
      eventually{page.should have_content("Something")}
    end
  end
end

Я запускаю тесты с жасмином, синоном и капибарой / rspec / webkit. Я слабо следую за "Rspec on Rails " книга от mindbot (кстати, потрясающая книга) и этот урок:http://tinnedfruit.com/2011/03/03/testing-backbone-apps-with-jasmine-sinon.html.

При запуске вышеупомянутой спецификации я столкнулся с этой ошибкой:

undefined|0|ReferenceError: Strict mode forbids implicit creation of global property 'csrf_token'

Я долго разбирался с этим, потому чтоНа самом деле ничего такого в этой ошибке нет.

В конце концов я наткнулся на использование "использовать строгий режим " в JS. По сути это будет использовать некоторые новые соглашения о скриптах EMCA5. Он поймает больше блоков кодирования и защитит вас от доступа к глобальным переменным. Все хорошее.

Итак, я проверяю, и в моем файле sinon.js я вижу:

"use strict";

в строке 36 файла. И вот, я закомментирую строку, и мои тесты работают просто отлично.

Вот мой вопрос: почему использовался строгий беспорядок csrf? Я предполагаю, что это как-то связано с csrf_meta_tags в моей раскладке рельсов. Если возможно, я хотел бы вернуть эту строку в sinon JS, так как я предполагаю, что это "правильно делать

У кого-нибудь есть больше информации по этому поводу? Я ценю любые детали заранее!

Ответы на вопрос(1)

Ваш ответ на вопрос