Add cross-env and ListenerRSSInfo is an interface

This commit is contained in:
Amaury
2021-02-14 17:07:23 +01:00
parent 43e93671dd
commit f8c9eb7d35
5 changed files with 134 additions and 163 deletions

View File

@ -1,5 +1,5 @@
// external lib
import * as Parser from "rss-parser";
import Parser from "rss-parser";
// tested class
import {
@ -21,15 +21,15 @@ const expect = chai.expect;
describe("test class RSS: jsonfile", function () {
let myListener: Listeners | undefined = undefined;
const infosListener: ListenerRRSInfo = new ListenerRRSInfo(
"my-test-service",
"fake.rss.service",
15,
[
const infosListener: ListenerRRSInfo = {
name: "my-test-service",
address: "fake.rss.service",
timeloop: 15,
customfields: [
["description", ["media:group", "media:description"]],
["icon", ["media:group", "media:thumbnail"]],
]
);
],
};
// parseURL tests
let stubParser: sinon.StubbedInstance<Parser>;
@ -89,6 +89,7 @@ describe("test class RSS: jsonfile", function () {
afterEach(function () {
// restore stubs
stubParser.parseURL.reset();
});
describe("Building Ytb listener", function () {
@ -110,83 +111,83 @@ describe("test class RSS: jsonfile", function () {
item: ["media:group", "media:group"],
});*/
});
it("The build without issues (raw infos : 4 params)", function () {
myListener = new Listeners("my-test-service", "fake.rss.service", 15, [
["description", ["media:group", "media:description"]],
["icon", ["media:group", "media:thumbnail"]],
]);
// assertions
// myListener data
expect(myListener.timeloop).to.eql(15);
expect(myListener.name).to.eql("my-test-service");
expect(myListener.address).to.eql("fake.rss.service");
expect(myListener.customfields).to.eql([
["description", ["media:group", "media:description"]],
["icon", ["media:group", "media:thumbnail"]],
]);
/*
expect(myListener.parser.options.customFields).to.eql({
feed: [],
item: ["media:group", "media:group"],
});*/
});
it("The build without issues (raw infos : just 2 params)", function () {
myListener = new Listeners("my-test-service", "fake.rss.service");
// assertions
// myListener data
expect(myListener.timeloop).to.eql(5 * 60);
expect(myListener.name).to.eql("my-test-service");
expect(myListener.address).to.eql("fake.rss.service");
expect(myListener.customfields).to.eql(undefined);
/*
expect(myListener.parser.options.customFields).to.eql({
feed: [],
item: [],
});*/
});
it("The build without issues (raw infos : just 3 params (no custom fields))", function () {
myListener = new Listeners("my-test-service", "fake.rss.service", 15);
// assertions
// myListener data
expect(myListener.timeloop).to.eql(15);
expect(myListener.name).to.eql("my-test-service");
expect(myListener.address).to.eql("fake.rss.service");
expect(myListener.customfields).to.eql(undefined);
/*
expect(myListener.parser.options.customFields).to.eql({
feed: [],
item: [],
});*/
});
it("The build without issues (raw infos : just 3 params (no timeloop))", function () {
myListener = new Listeners(
"my-test-service",
"fake.rss.service",
undefined,
[
["description", ["media:group", "media:description"]],
["icon", ["media:group", "media:thumbnail"]],
]
);
// assertions
// myListener data
expect(myListener.timeloop).to.eql(5 * 60);
expect(myListener.name).to.eql("my-test-service");
expect(myListener.address).to.eql("fake.rss.service");
expect(myListener.customfields).to.eql([
["description", ["media:group", "media:description"]],
["icon", ["media:group", "media:thumbnail"]],
]);
/*
expect(myListener.parser.options.customFields).to.eql({
feed: [],
item: ["media:group", "media:group"],
});*/
});
// it("The build without issues (raw infos : 4 params)", function () {
// myListener = new Listeners("my-test-service", "fake.rss.service", 15, [
// ["description", ["media:group", "media:description"]],
// ["icon", ["media:group", "media:thumbnail"]],
// ]);
//
// // assertions
// // myListener data
// expect(myListener.timeloop).to.eql(15);
// expect(myListener.name).to.eql("my-test-service");
// expect(myListener.address).to.eql("fake.rss.service");
// expect(myListener.customfields).to.eql([
// ["description", ["media:group", "media:description"]],
// ["icon", ["media:group", "media:thumbnail"]],
// ]);
// /*
// expect(myListener.parser.options.customFields).to.eql({
// feed: [],
// item: ["media:group", "media:group"],
// });*/
// });
// it("The build without issues (raw infos : just 2 params)", function () {
// myListener = new Listeners("my-test-service", "fake.rss.service");
//
// // assertions
// // myListener data
// expect(myListener.timeloop).to.eql(5 * 60);
// expect(myListener.name).to.eql("my-test-service");
// expect(myListener.address).to.eql("fake.rss.service");
// expect(myListener.customfields).to.eql(undefined);
// /*
// expect(myListener.parser.options.customFields).to.eql({
// feed: [],
// item: [],
// });*/
// });
// it("The build without issues (raw infos : just 3 params (no custom fields))", function () {
// myListener = new Listeners("my-test-service", "fake.rss.service", 15);
//
// // assertions
// // myListener data
// expect(myListener.timeloop).to.eql(15);
// expect(myListener.name).to.eql("my-test-service");
// expect(myListener.address).to.eql("fake.rss.service");
// expect(myListener.customfields).to.eql(undefined);
// /*
// expect(myListener.parser.options.customFields).to.eql({
// feed: [],
// item: [],
// });*/
// });
// it("The build without issues (raw infos : just 3 params (no timeloop))", function () {
// myListener = new Listeners(
// "my-test-service",
// "fake.rss.service",
// undefined,
// [
// ["description", ["media:group", "media:description"]],
// ["icon", ["media:group", "media:thumbnail"]],
// ]
// );
//
// // assertions
// // myListener data
// expect(myListener.timeloop).to.eql(5 * 60);
// expect(myListener.name).to.eql("my-test-service");
// expect(myListener.address).to.eql("fake.rss.service");
// expect(myListener.customfields).to.eql([
// ["description", ["media:group", "media:description"]],
// ["icon", ["media:group", "media:thumbnail"]],
// ]);
// /*
// expect(myListener.parser.options.customFields).to.eql({
// feed: [],
// item: ["media:group", "media:group"],
// });*/
// });
});
describe("fetch some data", function () {
@ -202,7 +203,7 @@ describe("test class RSS: jsonfile", function () {
// calls
expect(stubParser.parseURL).to.have.been.calledOnce;
expect(stubParser.parseURL).to.have.been.calledWith(
infosListener._address
infosListener.address
);
// Promise
//await expect(Promise.resolve(res)).to.be.eql(mockedRSSOutput);
@ -214,15 +215,14 @@ describe("test class RSS: jsonfile", function () {
});
it("fetch with bad address", function () {
// classic build
myListener = new Listeners(
"my-test-service",
"bad.rss.service",
undefined,
[
myListener = new Listeners({
name: "my-test-service",
address: "bad.rss.service",
customfields: [
["description", ["media:group", "media:description"]],
["icon", ["media:group", "media:thumbnail"]],
]
);
],
});
myListener.parser = stubParser; // replace the parser by my fake parser
// fetch
let res = myListener.fetchRSS();
@ -245,10 +245,15 @@ describe("test class RSS: jsonfile", function () {
this.timeout(15000);
// classic build
myListener = new Listeners("my-test-service", "fake.rss.service", 2, [
["description", ["media:group", "media:description"]],
["icon", ["media:group", "media:thumbnail"]],
]);
myListener = new Listeners({
name: "my-test-service",
address: "fake.rss.service",
timeloop: 2,
customfields: [
["description", ["media:group", "media:description"]],
["icon", ["media:group", "media:thumbnail"]],
],
});
//spy
const fun_spy: sinon.default.SinonSpy = sinon.default.spy();
@ -271,10 +276,15 @@ describe("test class RSS: jsonfile", function () {
this.timeout(15000);
// classic build
myListener = new Listeners("my-test-service", "bad.rss.service", 2, [
["description", ["media:group", "media:description"]],
["icon", ["media:group", "media:thumbnail"]],
]);
myListener = new Listeners({
name: "my-test-service",
address: "fake.rss.service",
timeloop: 2,
customfields: [
["description", ["media:group", "media:description"]],
["icon", ["media:group", "media:thumbnail"]],
],
});
//spy
const fun_spy: sinon.default.SinonSpy = sinon.default.spy();