|
61 | 61 | expect(long_task).not.to be(:started?) |
62 | 62 | end |
63 | 63 |
|
| 64 | + it "stores tags while started and clears them when stopped" do |
| 65 | + long_task = Falcon::Limiter::LongTask.for(mock_request, long_task_limiter, start_delay: 0) |
| 66 | + tags = {name: :rpc, controller: "ProductsController"} |
| 67 | + |
| 68 | + long_task.start(delay: 0, tags: tags) |
| 69 | + expect(long_task.tags).to be == tags |
| 70 | + |
| 71 | + long_task.stop |
| 72 | + expect(long_task.tags).to be_nil |
| 73 | + end |
| 74 | + |
| 75 | + it "stores tags during block form and clears them afterwards" do |
| 76 | + long_task = Falcon::Limiter::LongTask.for(mock_request, long_task_limiter, start_delay: 0) |
| 77 | + tags = {name: :graphql_proxy} |
| 78 | + |
| 79 | + long_task.start(delay: 0, tags: tags) do |task| |
| 80 | + expect(task.tags).to be == tags |
| 81 | + end |
| 82 | + |
| 83 | + expect(long_task.tags).to be_nil |
| 84 | + end |
| 85 | + |
64 | 86 | it "can start with delay" do |
65 | 87 | long_task = Falcon::Limiter::LongTask.for(mock_request, long_task_limiter, start_delay: 0.01) |
66 | 88 |
|
|
91 | 113 | long_task.stop |
92 | 114 | expect(long_task).not.to be(:pending?) |
93 | 115 | expect(long_task).not.to be(:acquired?) |
| 116 | + expect(long_task.tags).to be_nil |
| 117 | + end |
| 118 | + |
| 119 | + it "stores tags while pending" do |
| 120 | + long_task = Falcon::Limiter::LongTask.for(mock_request, long_task_limiter, start_delay: 0.1) |
| 121 | + tags = {name: :core_polling} |
| 122 | + |
| 123 | + long_task.start(delay: 0.1, tags: tags) |
| 124 | + expect(long_task).to be(:pending?) |
| 125 | + expect(long_task.tags).to be == tags |
| 126 | + |
| 127 | + long_task.stop |
| 128 | + expect(long_task.tags).to be_nil |
94 | 129 | end |
95 | 130 |
|
96 | 131 | it "is pending while waiting to acquire after delay" do |
|
276 | 311 | # Clean up |
277 | 312 | long_task.stop(force: true) |
278 | 313 | end |
| 314 | + |
| 315 | + it "does not replace tags when already started" do |
| 316 | + long_task = Falcon::Limiter::LongTask.new(nil, long_task_limiter) |
| 317 | + tags = {name: :outer} |
| 318 | + |
| 319 | + long_task.start(delay: 0, tags: tags) |
| 320 | + long_task.start(delay: 0, tags: {name: :inner}) |
| 321 | + |
| 322 | + expect(long_task.tags).to be == tags |
| 323 | + |
| 324 | + # Clean up |
| 325 | + long_task.stop(force: true) |
| 326 | + expect(long_task.tags).to be_nil |
| 327 | + end |
279 | 328 | end |
0 commit comments