From f26ff3053880d7e16a56ff3b2b75e78843063205 Mon Sep 17 00:00:00 2001 From: Mathieu Magnin Date: Fri, 27 Sep 2024 16:31:41 +0200 Subject: [PATCH] [#10799] Add maintenance task to fill api_entreprise_token_expires_at for previous data --- ...te_api_entreprise_token_expires_at_task.rb | 14 +++++++++++++ ...i_entreprise_token_expires_at_task_spec.rb | 20 +++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 app/tasks/maintenance/update_api_entreprise_token_expires_at_task.rb create mode 100644 spec/tasks/maintenance/update_api_entreprise_token_expires_at_task_spec.rb diff --git a/app/tasks/maintenance/update_api_entreprise_token_expires_at_task.rb b/app/tasks/maintenance/update_api_entreprise_token_expires_at_task.rb new file mode 100644 index 000000000..4c111d7dc --- /dev/null +++ b/app/tasks/maintenance/update_api_entreprise_token_expires_at_task.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +module Maintenance + class UpdateAPIEntrepriseTokenExpiresAtTask < MaintenanceTasks::Task + def collection + Procedure.where.not(api_entreprise_token: nil) + end + + def process(procedure) + procedure.set_api_entreprise_token_expires_at + procedure.save! + end + end +end diff --git a/spec/tasks/maintenance/update_api_entreprise_token_expires_at_task_spec.rb b/spec/tasks/maintenance/update_api_entreprise_token_expires_at_task_spec.rb new file mode 100644 index 000000000..87a78b147 --- /dev/null +++ b/spec/tasks/maintenance/update_api_entreprise_token_expires_at_task_spec.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +module Maintenance + RSpec.describe UpdateAPIEntrepriseTokenExpiresAtTask do + describe "#process" do + subject(:process) { described_class.process(procedure) } + + let(:expiration) { 1.month.from_now.beginning_of_minute } + let(:procedure) { create(:procedure) } + + before do + procedure.update_column(:api_entreprise_token, JWT.encode({ exp: expiration.to_i }, nil, "none")) + end + + it do + expect { process }.to change { procedure.reload.api_entreprise_token_expires_at }.from(nil).to(expiration) + end + end + end +end