diff --git a/app/javascript/packages/document-capture/context/acuant.tsx b/app/javascript/packages/document-capture/context/acuant.tsx index ae9dbd5e400..d6662a1a090 100644 --- a/app/javascript/packages/document-capture/context/acuant.tsx +++ b/app/javascript/packages/document-capture/context/acuant.tsx @@ -193,8 +193,8 @@ const getActualAcuantCamera = (): AcuantCameraInterface => { }; function AcuantContextProvider({ - sdkSrc = '/acuant/11.8.1/AcuantJavascriptWebSdk.min.js', - cameraSrc = '/acuant/11.8.1/AcuantCamera.min.js', + sdkSrc, + cameraSrc, credentials = null, endpoint = null, glareThreshold = DEFAULT_ACCEPTABLE_GLARE_SCORE, diff --git a/config/application.yml.default b/config/application.yml.default index 95b0428c86a..76ac6f12055 100644 --- a/config/application.yml.default +++ b/config/application.yml.default @@ -124,8 +124,8 @@ idv_available: true idv_contact_phone_number: (844) 555-5555 idv_max_attempts: 5 idv_min_age_years: 13 -idv_acuant_sdk_version_default: '11.8.1' -idv_acuant_sdk_version_alternate: '11.8.0' +idv_acuant_sdk_version_default: '11.8.2' +idv_acuant_sdk_version_alternate: '11.8.1' idv_acuant_sdk_upgrade_a_b_testing_enabled: false idv_acuant_sdk_upgrade_a_b_testing_percent: 50 idv_send_link_attempt_window_in_minutes: 10 diff --git a/spec/javascript/packages/document-capture/components/acuant-sdk-spec.js b/spec/javascript/packages/document-capture/components/acuant-sdk-spec.js index eb76b001f18..0c848e0b1cd 100644 --- a/spec/javascript/packages/document-capture/components/acuant-sdk-spec.js +++ b/spec/javascript/packages/document-capture/components/acuant-sdk-spec.js @@ -2,50 +2,61 @@ * Acuant SDK Loading Tests * */ +import fs from 'node:fs/promises'; +import path from 'node:path'; + import { JSDOM } from 'jsdom'; -import AcuantJavascriptWebSdk from '../../../../../public/acuant/11.8.1/AcuantJavascriptWebSdk.min.js'; - -const sdkPaths = { - '11.8.1': '../../../../../public/acuant/11.8.1/AcuantJavascriptWebSdk.min.js', -}; - -const TEST_URL = `file://${__dirname}/index.html`; - -const { window } = new JSDOM( - 'JSDOM', - { - url: TEST_URL, - runScripts: 'dangerously', - resources: 'usable', - }, -); -const { document } = window; - -describe('Acuant SDK Loading Tests', () => { - it('Can load something from the SDK file', () => { - expect(AcuantJavascriptWebSdk).to.exist(); - }); - describe('DOM Loading 11.8.1', () => { - before((done) => { - const scriptEl = document.createElement('script'); - scriptEl.id = 'test-acuant-sdk-script'; - scriptEl.onload = () => { - done(); - }; - scriptEl.src = sdkPaths['11.8.1']; - document.body.append(scriptEl); - }); - it('There is a script element in the DOM', () => { - const found = document.getElementById('test-acuant-sdk-script'); - expect(found).to.exist(); - }); - it('Has a global loadAcuantSdk object on the window', () => { - expect(window.loadAcuantSdk).to.exist(); - }); - it('Calling loadAcuantSdk gives us AcuantJavascriptWebSdk in the global scope and as a prop of the window', () => { - window.loadAcuantSdk(); - expect(AcuantJavascriptWebSdk).to.exist(); - expect(window.AcuantJavascriptWebSdk).to.exist(); + +const ACUANT_PUBLIC_DIR = '../../../../../public/acuant'; +const VERSION_REGEX = /^\d+\.\d+\.\d+$/; + +describe('Acuant SDK Loading Tests', async () => { + const sdks = (await fs.readdir(path.join(__dirname, ACUANT_PUBLIC_DIR))).filter((dir) => + VERSION_REGEX.test(dir), + ); + + if (!sdks.length) { + throw new Error('Expected to find at least one SDK version, but found none'); + } + + sdks.forEach((version) => { + describe(version, () => { + const TEST_URL = `file://${__dirname}/index.html`; + + const { window } = new JSDOM( + 'JSDOM', + { + url: TEST_URL, + runScripts: 'dangerously', + resources: 'usable', + }, + ); + + const { document } = window; + + before((done) => { + const scriptEl = document.createElement('script'); + scriptEl.id = 'test-acuant-sdk-script'; + scriptEl.onload = () => { + done(); + }; + scriptEl.src = `${ACUANT_PUBLIC_DIR}/${version}/AcuantJavascriptWebSdk.min.js`; + document.body.append(scriptEl); + }); + + it('There is a script element in the DOM', () => { + const found = document.getElementById('test-acuant-sdk-script'); + expect(found).to.exist(); + }); + + it('Has a global loadAcuantSdk object on the window', () => { + expect(window.loadAcuantSdk).to.exist(); + }); + + it('Calling loadAcuantSdk gives us AcuantJavascriptWebSdk as a prop of the window', () => { + window.loadAcuantSdk(); + expect(window).to.have.property('AcuantJavascriptWebSdk'); + }); }); }); }); diff --git a/spec/views/idv/shared/_document_capture.html.erb_spec.rb b/spec/views/idv/shared/_document_capture.html.erb_spec.rb index e9d5d4a3922..5fa68c60112 100644 --- a/spec/views/idv/shared/_document_capture.html.erb_spec.rb +++ b/spec/views/idv/shared/_document_capture.html.erb_spec.rb @@ -15,7 +15,7 @@ let(:back_image_upload_url) { nil } let(:acuant_sdk_upgrade_a_b_testing_enabled) { false } let(:use_alternate_sdk) { false } - let(:acuant_version) { '11.8.1' } + let(:acuant_version) { '1.3.3.7' } let(:in_person_cta_variant_testing_enabled) { false } let(:in_person_cta_variant_active) { '' }