type="date"なフォームをcapybara+chromeでテストするには

  • type="date"なフォームは現時点ではsafari以外のブラウザはカレンダーっぽい入力に対応している
  • こんな感じになる
    • f:id:willnet:20210412183642p:plain
  • 入力もtype="text"のときとは違うようで、普通にfill_in '日付', with: '2021-01-01'のような入力だと期待通りの日付が入力できない
    • なぜか10101-02-02みたいになってしまう
    • テストが失敗する
  • capybaraはこれを回避するためにjsで日付を埋めることをしている。これは入力がString以外かつto_date?に 対応しているオブジェクトが対象。なのでfill_in '日付', with: Date.new(2021, 1, 1)`のようにしたところテストが通った