Ich habe eine Fixture-Datei erstellt, um meine JSON-Daten zu verarbeiten, die zum Schreiben von Tests verwendet werden.TypeError: Eigenschaft 'splice' von undefined kann nicht gelesen werden
Vor jedem Test möchte ich, dass meine Daten mit Seed-Daten gefüllt werden. Nach jedem Test möchte ich meine Daten
Courses.json leer sein:
[
{
"id": 1,
"title": "Ma course"
}
]
CoursesFixture.js:
const { courseList } = require('./courses')
mockData = [
{
"id": 1,
"title": "Ma course"
}
]
module.exports = {
up:() => {
courseList.splice(0)
courseList.push.apply(courseList, mockData)
},
down:() => {
courseList.splice(0)
}
}
CoursesTest.js:
const request = require("supertest")
require('chai').should()
const bodyParser = require("body-parser")
const app = require('./../../app')
app.use(bodyParser.json())
const listeDeCourses = require("../fixtures/courses")
const listeDeCoursesFixture = require("../fixtures/coursesFixture")
describe('Courses',() =>{
beforeEach(() => { listeDeCoursesFixture.up() })
afterEach(() => { listeDeCoursesFixture.down() })
describe('Delete course list',()=>{
it("Should delete a list of course",()=>{
return request(app).get('/course')
.then((res) => {
res.body.should.have.lengthOf(1)
request(app).delete('/course').send({"id":"1"})
.then((res) => {
res.body.should.have.lengthOf(0)
})
}).catch((err) =>{
throw new Error(err);
})
})
})
describe('Create course list',() =>{
it("Should create a list of courses",() =>{
return request(app).post('/course').send({"id":3,"title":"Première course"}).then((res) => {
res.status.should.be.eq(200)
const listCourses = res.body
const lastCourse = res.body[1]
listCourses.should.be.a('array')
lastCourse.id.should.be.eq(3)
lastCourse.title.should.be.eq("Première course")
listCourses[listCourses.length - 1].should.be.eq(lastCourse)
}).catch((err) => {
throw new Error(err)
})
})
})
describe('Get course list',()=>{
it("Should get a list of all courses",()=>{
return request(app).get('/course')
.then((res) => {
res.body.should.have.lengthOf(1)
}).catch((err) =>{
console.log(err)
throw new Error(err);
})
})
})
})
Meine Problem ist, dass wenn ich meinen Test starte ich einen Fehler habe:
Ich denke, das Problem ist in CoursesFixture.js und sicherlich ein Syntaxfehler irgendwo, aber ich kann nicht finden, wo es ist.
Sie haben Recht ... Ich fühle mich so dumm haha –