gsheetcmslight
Version:
A library to read a Google Sheet with multilingal content
207 lines (202 loc) • 6.73 kB
JavaScript
const jsdom = require("jsdom");
const { JSDOM } = jsdom;
const mochaDom = require("mocha-jsdom");
const chai = require("chai");
const should = chai.should();
const expect = chai.expect;
function makeEmptyOptions() {
return {};
}
function makeOptionsWithUndefinedConfig() {
return { config: undefined };
}
function makeOptionsWithEmptyConfig() {
return { config: {} };
}
function makeFakeOptions() {
return {
config: { fake: "value" },
};
}
function makeTrueOptions() {
return {
config: { GoogleSheetsCmsVersion: "value" },
};
}
//const DataTransformer = require("../dist/js/gsheetscms");
//const DataTransformerMin = require("../dist/js/gsheetscms.min");
//function testDataTransformer(TheClass) {
// describe("constructor", () => {
// it("constructor ko because options absent", (done) => {
// let exceptionHappened = false;
// try {
// var instance = new TheClass(undefined);
// } catch (error) {
// should.exist(error);
// expect(error.message).to.equal("options must be present");
// exceptionHappened = true;
// }
// expect(exceptionHappened).to.be.true;
// done();
// });
// it("constructor ko because options empty", (done) => {
// let exceptionHappened = false;
// try {
// var instance = new TheClass(makeEmptyOptions());
// } catch (error) {
// should.exist(error);
// expect(error.message).to.equal("options must contains a config object");
// exceptionHappened = true;
// }
// expect(exceptionHappened).to.be.true;
// done();
// });
// it("constructor ko because options.config missing", (done) => {
// let exceptionHappened = false;
// try {
// var instance = new TheClass(makeOptionsWithUndefinedConfig());
// } catch (error) {
// should.exist(error);
// expect(error.message).to.equal("options must contains a config object");
// exceptionHappened = true;
// }
// expect(exceptionHappened).to.be.true;
// done();
// });
// it("constructor ko because config has not minimum property", (done) => {
// let exceptionHappened = false;
// try {
// var instance = new TheClass(makeFakeOptions());
// } catch (error) {
// should.exist(error);
// expect(error.message).to.equal(
// "options.config must contain at least the version (GoogleSheetsCmsVersion)"
// );
// exceptionHappened = true;
// }
// expect(exceptionHappened).to.be.true;
// done();
// });
// it("constructor ok", (done) => {
// let exceptionHappened = false;
// try {
// var instance = new TheClass(makeTrueOptions());
// } catch (error) {
// should.not.exist(error);
// exceptionHappened = true;
// }
// expect(exceptionHappened).to.be.false;
// done();
// });
// });
// describe("TheClass methods", () => {
// it("RetrieveBrowserLang", (done) => {
// // let fakeOptions = makeFakeOptions();
// // fakeOptions.enableLog = true;
// // var instance = new TheClass(fakeOptions);
// // instance.RetrieveBrowserLang();
// done();
// });
// it("BuildExpectedI8nColumnName", (done) => {
// let fakeOptions = makeTrueOptions();
// fakeOptions.enableLog = true;
// var instance = new TheClass(fakeOptions);
// const value = instance.BuildExpectedI8nColumnName();
// expect(value).to.equal("Value_en-US");
// done();
// });
// it("BuildExpectedI8nColumnName - ko", (done) => {
// let fakeOptions = makeFakeOptions();
// fakeOptions.enableLog = true;
// var instance = new TheClass(fakeOptions);
// const value = instance.BuildExpectedI8nColumnName();
// try {
// expect(value).to.equal("ko");
// } catch (error) {
// should.exist(error);
// }
// done();
// });
// it("GetDefaultColumnValueName", (done) => {
// let fakeOptions = makeFakeOptions();
// fakeOptions.enableLog = true;
// var instance = new TheClass(fakeOptions);
// const value = instance.GetDefaultColumnValueName();
// expect(value).to.equal("Value");
// done();
// });
// it("GetDefaultColumnValueName - ko", (done) => {
// let fakeOptions = makeFakeOptions();
// fakeOptions.enableLog = true;
// var instance = new TheClass(fakeOptions);
// const value = instance.GetDefaultColumnValueName();
// try {
// expect(value).to.equal("Ko");
// } catch (error) {
// should.exist(error);
// }
// done();
// });
// it("FilterKeysExactly - input array undefined", (done) => {
// let fakeOptions = makeFakeOptions();
// fakeOptions.enableLog = true;
// var instance = new TheClass(fakeOptions);
// try {
// const value = instance.FilterKeysExactly("filter");
// } catch (error) {
// should.exist(error);
// }
// done();
// });
// it("FilterKeysExactly - input array empty", (done) => {
// let fakeOptions = makeFakeOptions();
// fakeOptions.enableLog = true;
// var instance = new TheClass(fakeOptions);
// try {
// const value = instance.FilterKeysExactly("filter", ["value"]);
// } catch (error) {
// should.exist(error);
// }
// done();
// });
// it("FilterKeysExactly - input array cannot be an object", (done) => {
// let fakeOptions = makeFakeOptions();
// fakeOptions.enableLog = true;
// var instance = new TheClass(fakeOptions);
// try {
// const value = instance.FilterKeysExactly("filter", {});
// } catch (error) {
// should.exist(error);
// }
// done();
// });
// it("FilterKeysExactly - input filter undefined", (done) => {
// let fakeOptions = makeFakeOptions();
// fakeOptions.enableLog = true;
// var instance = new TheClass(fakeOptions);
// try {
// const value = instance.FilterKeysExactly();
// } catch (error) {
// should.exist(error);
// }
// done();
// });
// it("FilterKeysExactly - input filter is not sting", (done) => {
// let fakeOptions = makeFakeOptions();
// fakeOptions.enableLog = true;
// var instance = new TheClass(fakeOptions);
// try {
// const value = instance.FilterKeysExactly();
// } catch (error) {
// should.exist(error);
// }
// done();
// });
// });
//}
// describe("Non-minified DataTransformer", function () {
// testDataTransformer(DataTransformer);
// });
// describe("Minified DataTransformer", function () {
// testDataTransformer(DataTransformerMin);
// });