У нас возникла любопытная (временная зона?) Проблема с проверкой даты / времени в приложении Rails.
Проверяется дата created_at
на объекте Rails.
На переднем крае (.html.slim
страница с некоторыми AngularJS)
span.date
| {{ comment.createdAt }}
Отображает:
2017-01-03T00:00:00.000Z
, но ...
span.date
| {{ comment.createdAt | moment: 'MMMM Do, YYYY' }}
Отображает:
January 2nd, 2017
Мы ожидаем January 3rd, 2017
Я пытался moment.utc: 'MMMM Do, YYYY'
, но ничего не дает.
Мысли?
РЕДАКТИРОВАТЬ Фон для установки даты на объекте Комментарий в спецификации.
- Объект даты создается с
Date.parse
- Timecop замораживает время
- Объект комментария являетсясозданный
Comment.created_at
отображается на странице, но он корректируется по местному времени (это ожидаемое поведение)
Возможно, с Timecop заморожено, есть лучший способ установить current_date
так что когда momentJS thaws
выходит из строя, он находится в том же часовом поясе, что и машина, на которой выполняются тесты?!?
let!(:current_date) { Date.parse('2017-01-03') }
...
background do
Timecop.freeze(current_date)
end
...
context 'for story' do
background do
open_story_comments_modal
within '.story-comments-container' do
add_comment 'First comment message'
end
end
...
и в общем помощнике у нас есть
def add_comment(text)
fill_in 'comment[body]', with: text
find('input[name="comment[body]"]').send_keys(:enter)
expect(page).to have_css '.comments .comment-body', text: text
end