2017-12-07 15 views
-1

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.

Antwort

1

const { courseList } = require('./courses') sollte const courseList = require('./courses') sein?

+0

Sie haben Recht ... Ich fühle mich so dumm haha –

Verwandte Themen