File tree Expand file tree Collapse file tree 2 files changed +20
-1
lines changed Expand file tree Collapse file tree 2 files changed +20
-1
lines changed Original file line number Diff line number Diff line change @@ -124,7 +124,7 @@ def serialize
124
124
"arguments" => serialize_arguments_if_needed ( arguments ) ,
125
125
"executions" => executions ,
126
126
"exception_executions" => exception_executions ,
127
- "locale" => I18n . locale . to_s ,
127
+ "locale" => locale || I18n . locale . to_s ,
128
128
"timezone" => timezone ,
129
129
"enqueued_at" => Time . now . utc . iso8601 ( 9 ) ,
130
130
"scheduled_at" => scheduled_at ? scheduled_at . utc . iso8601 ( 9 ) : nil ,
Original file line number Diff line number Diff line change @@ -21,6 +21,25 @@ class JobSerializationTest < ActiveSupport::TestCase
21
21
assert_equal "en" , HelloJob . new . serialize [ "locale" ]
22
22
end
23
23
24
+ test "a deserialized job keeps its locale even if I18n.locale changes" do
25
+ old_locales = I18n . available_locales
26
+ begin
27
+ I18n . available_locales = [ :en , :es ]
28
+ I18n . locale = :es
29
+ payload = HelloJob . new . serialize
30
+ assert_equal "es" , payload [ "locale" ]
31
+
32
+ I18n . locale = :en
33
+
34
+ new_job = HelloJob . new
35
+ new_job . deserialize ( payload )
36
+
37
+ assert_equal "es" , new_job . serialize [ "locale" ]
38
+ ensure
39
+ I18n . available_locales = old_locales
40
+ end
41
+ end
42
+
24
43
test "serialize and deserialize are symmetric" do
25
44
# Ensure `enqueued_at` does not change between serializations
26
45
freeze_time
You can’t perform that action at this time.
0 commit comments