import glob from 'glob'; import fs from 'fs'; import { Serializable } from '../../types'; import parseJson from '../../json/parseJson'; export function encode(pair: string): string { return pair.split('=').map((part, index) => (index ? encodeURIComponent(part) : part)).join('='); } export interface Fixture { query: string json: Serializable file: string } export function loadFixtures(): Fixture[] { const files = glob.sync('./test/_resources/querystring/*.fixture'); return files.map((file) => { const fileContents = fs.readFileSync(file).toString('utf-8'); const [queryParts, jsonString] = fileContents.split('\n\n'); const query = queryParts.split('\n').map(encode).join('&'); const json = parseJson(jsonString); return { query, json, file }; }); } export function toQueryStringPairArray(query: string): string[] { return query.split('&').sort(); }