123456789101112131415161718192021222324252627282930313233343536373839 |
- /**
- * Parse and polish the screenshotter data in ss_data.yaml.
- *
- * This module is responsible for reading the file ss_data.yaml,
- * unify syntactic variations (like string vs. dict as test case body)
- * and provide common functionality (like a query string encoded version).
- * The export of this module is simply a dictionary of test cases.
- */
- "use strict";
- const fs = require("fs");
- const jsyaml = require("js-yaml");
- const querystring = require("querystring");
- const queryKeys = [
- "tex", "pre", "post", "display", "noThrow", "errorColor", "styles",
- ];
- let dict = fs.readFileSync(require.resolve("./ss_data.yaml"));
- dict = jsyaml.safeLoad(dict);
- for (const key in dict) {
- if (dict.hasOwnProperty(key)) {
- let itm = dict[key];
- if (typeof itm === "string") {
- itm = dict[key] = {tex: itm};
- }
- const query = {};
- queryKeys.forEach(function(key) {
- if (itm.hasOwnProperty(key)) {
- query[key] = itm[key];
- }
- });
- itm.query = querystring.stringify(query);
- if (itm.macros) {
- itm.query += "&" + querystring.stringify(itm.macros);
- }
- }
- }
- module.exports = dict;
|