@ -1,3 +1,5 @@
# frozen_string_literal: true
require 'rails_helper'
RSpec . describe 'ATS Prefill Integration' , type : :request do
@ -43,8 +45,7 @@ RSpec.describe 'ATS Prefill Integration', type: :request do
author : user ,
folder : template_folder ,
fields : template_fields ,
submitters : [ { 'name' = > 'First Party' , 'uuid' = > 'submitter-uuid-1' } ]
)
submitters : [ { 'name' = > 'First Party' , 'uuid' = > 'submitter-uuid-1' } ] )
end
let ( :submission ) do
@ -53,8 +54,7 @@ RSpec.describe 'ATS Prefill Integration', type: :request do
account : account ,
created_by_user : user ,
template_fields : template_fields ,
template_submitters : [ { 'name' = > 'First Party' , 'uuid' = > 'submitter-uuid-1' } ]
)
template_submitters : [ { 'name' = > 'First Party' , 'uuid' = > 'submitter-uuid-1' } ] )
end
let ( :submitter ) do
@ -62,8 +62,7 @@ RSpec.describe 'ATS Prefill Integration', type: :request do
submission : submission ,
uuid : 'submitter-uuid-1' ,
name : 'John Doe' ,
email : 'john@example.com'
)
email : 'john@example.com' )
end
describe 'Controller ATS parameter processing' do
@ -76,8 +75,9 @@ RSpec.describe 'ATS Prefill Integration', type: :request do
context 'when ATS fields and values are provided via Base64 parameters' do
let ( :test_params ) do
{
ats_fields : Base64 . urlsafe_encode64 ( [ 'employee_first_name' , 'employee_last_name' , 'employee_email' ] . to_json ) ,
ats_values : Base64 . urlsafe_encode64 ( { 'employee_first_name' = > 'John' , 'employee_last_name' = > 'Smith' , 'employee_email' = > 'john.smith@company.com' } . to_json )
ats_fields : Base64 . urlsafe_encode64 ( %w[ employee_first_name employee_last_name employee_email ] . to_json ) ,
ats_values : Base64 . urlsafe_encode64 ( { 'employee_first_name' = > 'John' , 'employee_last_name' = > 'Smith' ,
'employee_email' = > 'john.smith@company.com' } . to_json )
}
end
@ -197,10 +197,22 @@ RSpec.describe 'ATS Prefill Integration', type: :request do
it 'processes complete ATS prefill workflow from parameters to merged values' do
# Step 1: Simulate controller parameter processing
controller = SubmitFormController . new
allow ( controller ) . to receive ( :params ) . and_return ( ActionController :: Parameters . new ( {
ats_fields : Base64 . urlsafe_encode64 ( [ 'employee_first_name' , 'employee_last_name' , 'employee_email' ] . to_json ) ,
ats_values : Base64 . urlsafe_encode64 ( { 'employee_first_name' = > 'John' , 'employee_last_name' = > 'Smith' , 'employee_email' = > 'john.smith@company.com' } . to_json )
} ) )
ats_fields_data = %w[ employee_first_name employee_last_name employee_email ]
ats_values_data = {
'employee_first_name' = > 'John' ,
'employee_last_name' = > 'Smith' ,
'employee_email' = > 'john.smith@company.com'
}
encoded_fields = Base64 . urlsafe_encode64 ( ats_fields_data . to_json )
encoded_values = Base64 . urlsafe_encode64 ( ats_values_data . to_json )
params = ActionController :: Parameters . new ( {
ats_fields : encoded_fields ,
ats_values : encoded_values
} )
allow ( controller ) . to receive ( :params ) . and_return ( params )
ats_values = controller . send ( :fetch_ats_prefill_values_if_available )