all files / modules/headers/__tests__/ AcceptLanguage-test.js

100% Statements 27/27
100% Branches 0/0
100% Functions 12/12
100% Lines 27/27
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51                                               
/* jshint -W058 */
const assert = require("assert");
const expect = require("expect");
const AcceptLanguage = require("../AcceptLanguage");
 
describe("AcceptLanguage", function () {
    let header;
 
    describe("with no value", function () {
        beforeEach(function () {
            header = new AcceptLanguage();
        });
 
        it("has the correct toString representation", function () {
            expect(header.toString()).toEqual("Accept-Language: ");
        });
 
        it("has the correct quality factors", function () {
            expect(header.qualityFactorForLanguage("en")).toEqual(1);
        });
 
        it("accepts en", function () {
            assert(header.accepts("en"));
        });
    });
 
    describe("with a value of \"en;q=0.5, en-gb\"", function () {
        beforeEach(function () {
            header = new AcceptLanguage("en;q=0.5, en-gb");
        });
 
        it("has the correct quality factors", function () {
            expect(header.qualityFactorForLanguage("en")).toEqual(0.5);
            expect(header.qualityFactorForLanguage("en-gb")).toEqual(1);
            expect(header.qualityFactorForLanguage("da")).toEqual(0);
        });
 
        it("accepts en", function () {
            assert(header.accepts("en"));
        });
 
        it("accepts en-gb", function () {
            assert(header.accepts("en-gb"));
        });
 
        it("does not accept da", function () {
            assert(!header.accepts("da"));
        });
    });
});