From ae0b424a2e05968890719ce7b03bd86939349f72 Mon Sep 17 00:00:00 2001 From: jclark Date: Tue, 28 May 2024 10:17:48 +0100 Subject: [PATCH 1/2] salesforce: wrap any loadAnyAscii in a function and return state; then update tests --- packages/salesforce/src/Adaptor.js | 12 ++++++-- packages/salesforce/test/Adaptor.test.js | 37 ++++++++++++++---------- 2 files changed, 31 insertions(+), 18 deletions(-) diff --git a/packages/salesforce/src/Adaptor.js b/packages/salesforce/src/Adaptor.js index 4aea93f38..f269d0cf0 100644 --- a/packages/salesforce/src/Adaptor.js +++ b/packages/salesforce/src/Adaptor.js @@ -28,9 +28,11 @@ let anyAscii = undefined; // use a dynamic import because any-ascii is pure ESM and doesn't play well with CJS // This promise MUST be resolved by execute before a connection is created -const loadAnyAscii = import('any-ascii').then(m => { - anyAscii = m.default; -}); +const loadAnyAscii = state => + import('any-ascii').then(m => { + anyAscii = m.default; + return state; + }); /** * Adds a lookup relation or 'dome insert' to a record. @@ -764,6 +766,10 @@ function createAccessTokenConnection(state) { * @returns {State} */ function createConnection(state) { + if (state.connection) { + return state; + } + const { access_token } = state.configuration; return access_token diff --git a/packages/salesforce/test/Adaptor.test.js b/packages/salesforce/test/Adaptor.test.js index adb344f05..46120a1cf 100644 --- a/packages/salesforce/test/Adaptor.test.js +++ b/packages/salesforce/test/Adaptor.test.js @@ -7,16 +7,9 @@ import { upsert, upsertIf, toUTF8, - steps, - each, - field, - fields, - sourceValue, execute, } from '../src/Adaptor'; -import testData from './testData' assert { type: 'json' }; - const { expect } = chai; describe('Adaptor', () => { @@ -173,18 +166,32 @@ describe('Adaptor', () => { }); describe('toUTF8', () => { - it('Transliterate unicode to ASCII representation', () => { - expect(toUTF8('άνθρωποι')).to.eql('anthropoi'); + it('Transliterate unicode to ASCII representation', async () => { + const state = { + connection: {}, + }; + + // Run toUTF8 inside an execute block to ensure that any-ascii gets loaded correctly + const convert = str => execute(state => toUTF8(str))(state); + + let result = await convert('άνθρωποι'); + expect(result).to.eql('anthropoi'); + // Misc - expect(toUTF8('☆ ♯ ♰ ⚄ ⛌')).to.equal('* # + 5 X'); + result = await convert('☆ ♯ ♰ ⚄ ⛌'); + expect(result).to.equal('* # + 5 X'); + // Emojis - expect(toUTF8('👑 🌴')).to.eql(':crown: :palm_tree:'); + result = await convert('👑 🌴'); + expect(result).to.eql(':crown: :palm_tree:'); + // Letterlike - expect(toUTF8('№ ℳ ⅋ ⅍')).to.eql('No M & A/S'); + result = await convert('№ ℳ ⅋ ⅍'); + expect(result).to.eql('No M & A/S'); + // Ordinal coordinator - expect(toUTF8('Nhamaonha 6ª Classe 2023-10-09')).to.eql( - 'Nhamaonha 6a Classe 2023-10-09' - ); + result = await convert('Nhamaonha 6ª Classe 2023-10-09'); + expect(result).to.eql('Nhamaonha 6a Classe 2023-10-09'); }); }); }); From f67c5145de59e1ca5e9404a263b2568e5f0c977f Mon Sep 17 00:00:00 2001 From: jclark Date: Tue, 28 May 2024 10:51:40 +0100 Subject: [PATCH 2/2] version: salesforce@4.6.9 --- packages/salesforce/CHANGELOG.md | 6 ++++++ packages/salesforce/package.json | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/salesforce/CHANGELOG.md b/packages/salesforce/CHANGELOG.md index 9b91da3a5..b8b892d66 100644 --- a/packages/salesforce/CHANGELOG.md +++ b/packages/salesforce/CHANGELOG.md @@ -1,5 +1,11 @@ # @openfn/language-salesforce +## 4.6.9 + +### Patch Changes + +- Fix any-ascii load and add more tests + ## 4.6.8 ### Patch Changes diff --git a/packages/salesforce/package.json b/packages/salesforce/package.json index 1366aff7f..9c084a292 100644 --- a/packages/salesforce/package.json +++ b/packages/salesforce/package.json @@ -1,6 +1,6 @@ { "name": "@openfn/language-salesforce", - "version": "4.6.8", + "version": "4.6.9", "description": "Salesforce Language Pack for OpenFn", "homepage": "https://docs.openfn.org", "exports": {