Files
notifications-admin/tests/javascripts/support/helpers/utilities.js
Tom Byers bbb1ca33e9 Add utility helper for making form data sendable
Useful for assertions where the data you're
comparing is already in this format.
2019-10-03 07:56:22 +01:00

23 lines
843 B
JavaScript

// general helpers, not related to the DOM and usable in different contexts
// turn a list of key=value pairs (like tuples) into data that can be sent via AJAX
// taken from https://developer.mozilla.org/en-US/docs/Learn/HTML/Forms/Sending_forms_through_JavaScript
// but requiring an array as input rather than a hash, to preserve order of pairs
function getFormDataFromPairs (pairs) {
const urlEncodedDataPairs = [];
pairs.forEach(pair => {
urlEncodedDataPairs.push(`${window.encodeURIComponent(pair[0])}=${window.encodeURIComponent(pair[1])}`);
});
// Combine the pairs into a single string and replace all %-encoded spaces to
// the '+' character; matches the behaviour of browser form submissions.
return urlEncodedDataPairs.join('&').replace(/%20/g, '+');
};
exports.getFormDataFromPairs = getFormDataFromPairs;