Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 不确定为什么我的测试不起作用-200对400状态_Javascript_Node.js_Chai_Express Validator - Fatal编程技术网

Javascript 不确定为什么我的测试不起作用-200对400状态

Javascript 不确定为什么我的测试不起作用-200对400状态,javascript,node.js,chai,express-validator,Javascript,Node.js,Chai,Express Validator,我在想为什么我不能通过这次考试。我应该得到一个200状态消息,但在我的InsuranceQuotesController.js文件中我得到了一个400(来自if(!errors.isEmpty())状态消息。因为const errors不是空的,它返回400状态代码。你知道我如何解决这个问题吗 Test.js const chai = require("chai") const expect = chai.expect; const assert = require('ch

我在想为什么我不能通过这次考试。我应该得到一个200状态消息,但在我的InsuranceQuotesController.js文件中我得到了一个400(来自
if(!errors.isEmpty()
)状态消息。因为
const errors
不是空的,它返回400状态代码。你知道我如何解决这个问题吗


Test.js

const chai = require("chai")
const expect = chai.expect;
const assert = require('chai').assert;
const quote = require('../controllers/insuranceQuotesControllers');
const app = require('../app');
const pathUrl = "/api/v1/quote/car-insurance";

chai.use(require("chai-http"));

describe ('200 message status', () => {
    it('should return the 200 status message if the person is eligible', ()=>{
        chai.request('http://localhost:8080')
        .post(pathUrl)
        .set('Accept', 'application/json')
        .send({
                "car_value": 10000.00,
                "driver_birthdate": "17/11/1990"
              })
        .end((err, res) => {
          assert.equal(res.status, 200, "Status OK 200")
          // assert.equal(res.body.success, true)
          // assert.equal(res.body.message, "quote successfully computed")
          // assert.equal(res.body.data.eligible, false)
          // assert.equal(res.body.data.premiums, null)
        })
      });
})
const express = require("express")
const bodyParser = require("body-parser")

const insuranceQuoteRoutes = require("./routes/insuranceQuotes")

const app = express()

app.use(bodyParser.json())

app.use("/api", insuranceQuoteRoutes)

app.listen(8080)

module.exports = app
const express = require("express")
// const {body} = require("express-validator");
const {check, validationResult} = require("express-validator");

const insuranceQuoteController = require("../controllers/insuranceQuotesControllers")

const router = express.Router()

//carDateRegex: https://www.regextester.com/99555
const carDateRegex = /^([0-2][0-9]|(3)[0-1])(\/)(((0)[0-9])|((1)[0-2]))(\/)\d{4}$/

// router.post("/v1/quote/car-insurance", [
//     body("car-value").isFloat(),
//     body("driver_birthdate").matches(carDateRegex)
// ], insuranceQuoteController.postInsuranceQuotes);

router.post("/v1/quote/car-insurance", [
    check("car-value").isFloat(),
    check("driver_birthdate").matches(carDateRegex)
], insuranceQuoteController.postInsuranceQuotes);

module.exports = router
const {check, validationResult} = require("express-validator");

exports.postInsuranceQuotes = (req,res) => {
    const errors = validationResult(req);
    const birthdateDriver = req.body.driver_birthdate;
    const ageDriver = driverAge(birthdateDriver);

    if(!errors.isEmpty()){
        return res.status(400).json({
            "success": false,
            "message": "parameters missing or incorrect values"
        })
    }

if(ageDriver < 18){
    res.status(200).json({
        success: true,
        message: "quote successfully computed",
        data: {
            eligible: false,
            premiums: null
        }
    })
} else if(ageDriver >= 18){
    res.status(200).json({
        success: true,
        message: "quote successfully computed",
        data: {
            eligible: true,
            premiums: {
                civil_liability: civilLiability(ageDriver),
                omnium: omnium()
            }
        }
    });
}

}

app.js

const chai = require("chai")
const expect = chai.expect;
const assert = require('chai').assert;
const quote = require('../controllers/insuranceQuotesControllers');
const app = require('../app');
const pathUrl = "/api/v1/quote/car-insurance";

chai.use(require("chai-http"));

describe ('200 message status', () => {
    it('should return the 200 status message if the person is eligible', ()=>{
        chai.request('http://localhost:8080')
        .post(pathUrl)
        .set('Accept', 'application/json')
        .send({
                "car_value": 10000.00,
                "driver_birthdate": "17/11/1990"
              })
        .end((err, res) => {
          assert.equal(res.status, 200, "Status OK 200")
          // assert.equal(res.body.success, true)
          // assert.equal(res.body.message, "quote successfully computed")
          // assert.equal(res.body.data.eligible, false)
          // assert.equal(res.body.data.premiums, null)
        })
      });
})
const express = require("express")
const bodyParser = require("body-parser")

const insuranceQuoteRoutes = require("./routes/insuranceQuotes")

const app = express()

app.use(bodyParser.json())

app.use("/api", insuranceQuoteRoutes)

app.listen(8080)

module.exports = app
const express = require("express")
// const {body} = require("express-validator");
const {check, validationResult} = require("express-validator");

const insuranceQuoteController = require("../controllers/insuranceQuotesControllers")

const router = express.Router()

//carDateRegex: https://www.regextester.com/99555
const carDateRegex = /^([0-2][0-9]|(3)[0-1])(\/)(((0)[0-9])|((1)[0-2]))(\/)\d{4}$/

// router.post("/v1/quote/car-insurance", [
//     body("car-value").isFloat(),
//     body("driver_birthdate").matches(carDateRegex)
// ], insuranceQuoteController.postInsuranceQuotes);

router.post("/v1/quote/car-insurance", [
    check("car-value").isFloat(),
    check("driver_birthdate").matches(carDateRegex)
], insuranceQuoteController.postInsuranceQuotes);

module.exports = router
const {check, validationResult} = require("express-validator");

exports.postInsuranceQuotes = (req,res) => {
    const errors = validationResult(req);
    const birthdateDriver = req.body.driver_birthdate;
    const ageDriver = driverAge(birthdateDriver);

    if(!errors.isEmpty()){
        return res.status(400).json({
            "success": false,
            "message": "parameters missing or incorrect values"
        })
    }

if(ageDriver < 18){
    res.status(200).json({
        success: true,
        message: "quote successfully computed",
        data: {
            eligible: false,
            premiums: null
        }
    })
} else if(ageDriver >= 18){
    res.status(200).json({
        success: true,
        message: "quote successfully computed",
        data: {
            eligible: true,
            premiums: {
                civil_liability: civilLiability(ageDriver),
                omnium: omnium()
            }
        }
    });
}

}

insuranceQuotes.js

const chai = require("chai")
const expect = chai.expect;
const assert = require('chai').assert;
const quote = require('../controllers/insuranceQuotesControllers');
const app = require('../app');
const pathUrl = "/api/v1/quote/car-insurance";

chai.use(require("chai-http"));

describe ('200 message status', () => {
    it('should return the 200 status message if the person is eligible', ()=>{
        chai.request('http://localhost:8080')
        .post(pathUrl)
        .set('Accept', 'application/json')
        .send({
                "car_value": 10000.00,
                "driver_birthdate": "17/11/1990"
              })
        .end((err, res) => {
          assert.equal(res.status, 200, "Status OK 200")
          // assert.equal(res.body.success, true)
          // assert.equal(res.body.message, "quote successfully computed")
          // assert.equal(res.body.data.eligible, false)
          // assert.equal(res.body.data.premiums, null)
        })
      });
})
const express = require("express")
const bodyParser = require("body-parser")

const insuranceQuoteRoutes = require("./routes/insuranceQuotes")

const app = express()

app.use(bodyParser.json())

app.use("/api", insuranceQuoteRoutes)

app.listen(8080)

module.exports = app
const express = require("express")
// const {body} = require("express-validator");
const {check, validationResult} = require("express-validator");

const insuranceQuoteController = require("../controllers/insuranceQuotesControllers")

const router = express.Router()

//carDateRegex: https://www.regextester.com/99555
const carDateRegex = /^([0-2][0-9]|(3)[0-1])(\/)(((0)[0-9])|((1)[0-2]))(\/)\d{4}$/

// router.post("/v1/quote/car-insurance", [
//     body("car-value").isFloat(),
//     body("driver_birthdate").matches(carDateRegex)
// ], insuranceQuoteController.postInsuranceQuotes);

router.post("/v1/quote/car-insurance", [
    check("car-value").isFloat(),
    check("driver_birthdate").matches(carDateRegex)
], insuranceQuoteController.postInsuranceQuotes);

module.exports = router
const {check, validationResult} = require("express-validator");

exports.postInsuranceQuotes = (req,res) => {
    const errors = validationResult(req);
    const birthdateDriver = req.body.driver_birthdate;
    const ageDriver = driverAge(birthdateDriver);

    if(!errors.isEmpty()){
        return res.status(400).json({
            "success": false,
            "message": "parameters missing or incorrect values"
        })
    }

if(ageDriver < 18){
    res.status(200).json({
        success: true,
        message: "quote successfully computed",
        data: {
            eligible: false,
            premiums: null
        }
    })
} else if(ageDriver >= 18){
    res.status(200).json({
        success: true,
        message: "quote successfully computed",
        data: {
            eligible: true,
            premiums: {
                civil_liability: civilLiability(ageDriver),
                omnium: omnium()
            }
        }
    });
}

}

InsuranceQuotesController.js

const chai = require("chai")
const expect = chai.expect;
const assert = require('chai').assert;
const quote = require('../controllers/insuranceQuotesControllers');
const app = require('../app');
const pathUrl = "/api/v1/quote/car-insurance";

chai.use(require("chai-http"));

describe ('200 message status', () => {
    it('should return the 200 status message if the person is eligible', ()=>{
        chai.request('http://localhost:8080')
        .post(pathUrl)
        .set('Accept', 'application/json')
        .send({
                "car_value": 10000.00,
                "driver_birthdate": "17/11/1990"
              })
        .end((err, res) => {
          assert.equal(res.status, 200, "Status OK 200")
          // assert.equal(res.body.success, true)
          // assert.equal(res.body.message, "quote successfully computed")
          // assert.equal(res.body.data.eligible, false)
          // assert.equal(res.body.data.premiums, null)
        })
      });
})
const express = require("express")
const bodyParser = require("body-parser")

const insuranceQuoteRoutes = require("./routes/insuranceQuotes")

const app = express()

app.use(bodyParser.json())

app.use("/api", insuranceQuoteRoutes)

app.listen(8080)

module.exports = app
const express = require("express")
// const {body} = require("express-validator");
const {check, validationResult} = require("express-validator");

const insuranceQuoteController = require("../controllers/insuranceQuotesControllers")

const router = express.Router()

//carDateRegex: https://www.regextester.com/99555
const carDateRegex = /^([0-2][0-9]|(3)[0-1])(\/)(((0)[0-9])|((1)[0-2]))(\/)\d{4}$/

// router.post("/v1/quote/car-insurance", [
//     body("car-value").isFloat(),
//     body("driver_birthdate").matches(carDateRegex)
// ], insuranceQuoteController.postInsuranceQuotes);

router.post("/v1/quote/car-insurance", [
    check("car-value").isFloat(),
    check("driver_birthdate").matches(carDateRegex)
], insuranceQuoteController.postInsuranceQuotes);

module.exports = router
const {check, validationResult} = require("express-validator");

exports.postInsuranceQuotes = (req,res) => {
    const errors = validationResult(req);
    const birthdateDriver = req.body.driver_birthdate;
    const ageDriver = driverAge(birthdateDriver);

    if(!errors.isEmpty()){
        return res.status(400).json({
            "success": false,
            "message": "parameters missing or incorrect values"
        })
    }

if(ageDriver < 18){
    res.status(200).json({
        success: true,
        message: "quote successfully computed",
        data: {
            eligible: false,
            premiums: null
        }
    })
} else if(ageDriver >= 18){
    res.status(200).json({
        success: true,
        message: "quote successfully computed",
        data: {
            eligible: true,
            premiums: {
                civil_liability: civilLiability(ageDriver),
                omnium: omnium()
            }
        }
    });
}

}
const{check,validationResult}=require(“快速验证器”);
exports.postinsurancequeotes=(请求、回复)=>{
常量错误=验证结果(req);
const birthdateDriver=req.body.driver\u birthdate;
const ageDriver=驾驶率(birthdateDriver);
如果(!errors.isEmpty()){
返回res.status(400).json({
“成功”:错误,
“消息”:“参数丢失或值不正确”
})
}
如果(年龄小于18岁的驾驶员){
res.status(200).json({
成功:没错,
消息:“报价已成功计算”,
数据:{
符合条件:错误,
保费:零
}
})
}否则如果(年龄驱动程序>=18){
res.status(200).json({
成功:没错,
消息:“报价已成功计算”,
数据:{
符合条件:正确,
保费:{
民事责任:民事责任(年龄),
omnium:omnium()
}
}
});
}
}