RailsのactionMailerでdeliver_laterする際、ブラウザから操作した場合は問題ないのにsystem test時に下記のエラーが発生。
ActiveJob::SerializationError: Unsupported argument type: Time
rspecかcapybaraかと思ったら、activeJobのバグと、ActionMailerに渡しているmockの書き方が原因だった。
myMailer.myMethod(params).deliver_later
paramsはAPIで取得するJSONをparseしたハッシュのため、テストの場合はmockにしていたが、TimeWithZone型をそのまま突っ込んでいた。
これをstringにすることで解決。
参考