Starting unit testing (hard work)
This commit is contained in:
		
							
								
								
									
										818
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										818
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -6,7 +6,8 @@
 | 
				
			|||||||
  "scripts": {
 | 
					  "scripts": {
 | 
				
			||||||
    "start": "node index.js",
 | 
					    "start": "node index.js",
 | 
				
			||||||
    "service": "node index.js --service",
 | 
					    "service": "node index.js --service",
 | 
				
			||||||
    "stop": "node index.js stop"
 | 
					    "stop": "node index.js stop",
 | 
				
			||||||
 | 
					    "test": "mocha tests/*-spec.js"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "author": "Ju [kataku] / Skeptikon",
 | 
					  "author": "Ju [kataku] / Skeptikon",
 | 
				
			||||||
  "dependencies": {
 | 
					  "dependencies": {
 | 
				
			||||||
@@ -18,5 +19,11 @@
 | 
				
			|||||||
    "lodash": "^4.17.15",
 | 
					    "lodash": "^4.17.15",
 | 
				
			||||||
    "pm2": "^4.2.3",
 | 
					    "pm2": "^4.2.3",
 | 
				
			||||||
    "rss-parser": "^3.7.5"
 | 
					    "rss-parser": "^3.7.5"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "devDependencies": {
 | 
				
			||||||
 | 
					    "chai": "^4.2.0",
 | 
				
			||||||
 | 
					    "mocha": "^8.2.1",
 | 
				
			||||||
 | 
					    "proxyquire": "^2.1.3",
 | 
				
			||||||
 | 
					    "sinon": "^9.2.2"
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -88,4 +88,7 @@ function rssLoop(time) {
 | 
				
			|||||||
    // INIT
 | 
					    // INIT
 | 
				
			||||||
console.log(` --- [RSS-Youtube] Load`)
 | 
					console.log(` --- [RSS-Youtube] Load`)
 | 
				
			||||||
routage.log(`Load`)
 | 
					routage.log(`Load`)
 | 
				
			||||||
rssLoop(db.config.timeLoop*60*1000)
 | 
					// rssLoop(db.config.timeLoop*60*1000)
 | 
				
			||||||
 | 
					module.exports = {
 | 
				
			||||||
 | 
					  rssLoop
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										59
									
								
								tests/rss-youtube-spec.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								tests/rss-youtube-spec.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,59 @@
 | 
				
			|||||||
 | 
					const chai = require("chai");
 | 
				
			||||||
 | 
					const sinon = require("sinon");
 | 
				
			||||||
 | 
					const proxyquire = require("proxyquire");
 | 
				
			||||||
 | 
					const Parser = require("rss-parser");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const expect = chai.expect;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					describe("RSS Youtube", function () {
 | 
				
			||||||
 | 
					  let rssYoutubeService;
 | 
				
			||||||
 | 
					  let timecode;
 | 
				
			||||||
 | 
					  let routage;
 | 
				
			||||||
 | 
					  let parseUrlStub;
 | 
				
			||||||
 | 
					  let mockedInput = {
 | 
				
			||||||
 | 
					    items: [
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        id: "::account",
 | 
				
			||||||
 | 
					        url:
 | 
				
			||||||
 | 
					        isoDate: Date.now().toISOString(),
 | 
				
			||||||
 | 
					        "media:group": {
 | 
				
			||||||
 | 
					          "media:description": [
 | 
				
			||||||
 | 
					            "my description"
 | 
				
			||||||
 | 
					          ]
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  beforeEach(function () {
 | 
				
			||||||
 | 
					    timecode = {
 | 
				
			||||||
 | 
					      "lastCheck": "2020-11-12T17:44:11.713Z",
 | 
				
			||||||
 | 
					      "MyUser": "2020-11-12T17:44:11.713Z"
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					    routage = {
 | 
				
			||||||
 | 
					      log: sinon.stub(),
 | 
				
			||||||
 | 
					      send: sinon.stub()
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    parseUrlStub = sinon.stub(Parser.prototype, "parseURL")
 | 
				
			||||||
 | 
					      .callsFake((_, callback) => callback(null, "data"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    rssYoutubeService = proxyquire("../services/rss-youtube", {
 | 
				
			||||||
 | 
					      "../modules/routage": () => routage,
 | 
				
			||||||
 | 
					      "../db/rss-youtube.json": {
 | 
				
			||||||
 | 
					        config: {
 | 
				
			||||||
 | 
					          timeLoop: 5,
 | 
				
			||||||
 | 
					          urlFeeds: "https://www.youtube.com/feeds/videos.xml?channel_id=",
 | 
				
			||||||
 | 
					          sliceDescription: 142
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        feeds: {
 | 
				
			||||||
 | 
					          MyUser: "Some channel"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        timecode
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  afterEach(function () {
 | 
				
			||||||
 | 
					    Parser.prototype.parseURL.reset();
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
		Reference in New Issue
	
	Block a user