Add cloud function integration tests

This commit is contained in:
Conor McNamara
2023-02-23 20:53:43 +00:00
parent f54c8dddc6
commit 4c1a24d865
4 changed files with 717 additions and 43 deletions

1
.gitignore vendored
View File

@ -64,3 +64,4 @@ node_modules/
# dotenv environment variables file # dotenv environment variables file
.env .env
./src/api/firebase.js

File diff suppressed because it is too large Load Diff

View File

@ -6,7 +6,8 @@
"shell": "firebase functions:shell", "shell": "firebase functions:shell",
"start": "npm run shell", "start": "npm run shell",
"deploy": "firebase deploy --only functions", "deploy": "firebase deploy --only functions",
"logs": "firebase functions:log" "logs": "firebase functions:log",
"test": "mocha --reporter spec"
}, },
"engines": { "engines": {
"node": "16" "node": "16"
@ -14,9 +15,12 @@
"main": "index.js", "main": "index.js",
"dependencies": { "dependencies": {
"axios": "^1.3.3", "axios": "^1.3.3",
"chai": "^4.3.7",
"chai-http": "^4.3.0",
"firebase": "^9.17.1", "firebase": "^9.17.1",
"firebase-admin": "^11.5.0", "firebase-admin": "^11.5.0",
"firebase-functions": "^4.2.0", "firebase-functions": "^4.2.0",
"mocha": "^10.2.0",
"xml2js": "^0.4.23" "xml2js": "^0.4.23"
}, },
"devDependencies": { "devDependencies": {

View File

@ -0,0 +1,29 @@
const chai = require('chai');
const chaiHttp = require('chai-http');
chai.use(chaiHttp);
const expect = chai.expect;
describe('Firebase cloud function tests', function() {
this.timeout(100000);
it('Test getting live train data', async() => {
const result = await chai.request('https://us-central1-irishrailtracker.cloudfunctions.net')
.get('/getLiveTrainData')
expect(result.statusCode).to.equal(200);
expect(result.body.data).to.be.an('Array');
expect(result.body.data[0]).haveOwnProperty('TrainStatus');
expect(result.body.data[0]).haveOwnProperty('PublicMessage');
expect(result.body.data[0]).haveOwnProperty('TrainLatitude');
expect(result.body.data[0]).haveOwnProperty('Direction');
expect(result.body.data[0]).haveOwnProperty('TrainLongitude');
expect(result.body.data[0]).haveOwnProperty('TrainCode');
expect(result.body.data[0]).haveOwnProperty('TrainDate');
}),
this.timeout(100000);
it('Test updating the database with live train data', async() => {
const result = await chai.request('https://us-central1-irishrailtracker.cloudfunctions.net')
.get('/postLiveTrainData')
expect(result.statusCode).to.equal(200);
})
})