Advertisement
Lulunga

Unit Testing 06. Payment Package Classes alternative 90/100

Oct 22nd, 2019
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. describe("class PaymentPackage", () => {
  2.         it("check if create new instance", () => {
  3.             let obj = new PaymentPackage('a', 1)
  4.             expect(obj).to.be.an.instanceof(PaymentPackage);
  5.             expect(obj._name).to.equal('a')
  6.             expect(obj._value).to.equal(1)
  7.             expect(obj._VAT).to.equal(20)
  8.             expect(obj._active).to.be.a('boolean')
  9.         });
  10.         it("check for a input with one param", () => {
  11.             expect(() =>(new PaymentPackage('a')).to.throw('Value must be a non-negative number'))
  12.             expect(() =>(new PaymentPackage('a', 'a')).to.throw('Value must be a non-negative number'))
  13.             expect(() =>(new PaymentPackage('a', -1)).to.throw('Value must be a non-negative number'))
  14.             expect(() =>(new PaymentPackage(1)).to.throw('Name must be a non-empty string'))  
  15.             expect(() =>(new PaymentPackage('', 1)).to.throw('Name must be a non-empty string'))  
  16.         });
  17.          it("check all METHODS", () => {
  18.             let obj = new PaymentPackage('a', 10)
  19.             expect(obj).to.have.property('name');
  20.             expect(obj).to.have.property('value');
  21.             expect(obj).to.have.property('VAT');
  22.             expect(obj).to.have.property('active');
  23.             expect(obj).to.have.property('toString');  
  24.          });
  25.         it("check name method", () => {
  26.                 expect(() =>(new PaymentPackage.name('')).to.throw('Name must be a non-empty string'))
  27.                 expect(() =>(new PaymentPackage.name(1)).to.throw('Name must be a non-empty string'))
  28.                 expect(() =>(new PaymentPackage.name(true)).to.throw('Name must be a non-empty string'))
  29.         });
  30.         it("check value method", () => {
  31.             expect(() =>(new PaymentPackage.value('')).to.throw('Value must be a non-negative number'))
  32.             expect(() =>(new PaymentPackage.value(-1)).to.throw('Value must be a non-negative number'))
  33.             expect(() =>(new PaymentPackage.value(true)).to.throw('Value must be a non-negative number'))
  34.         });
  35.         it("check VAT method", () => {
  36.             expect(() =>(new PaymentPackage.VAT('')).to.throw('VAT must be a non-negative number'))
  37.             expect(() =>(new PaymentPackage.VAT(-1)).to.throw('VAT must be a non-negative number'))
  38.             expect(() =>(new PaymentPackage.VAT(true)).to.throw('VAT must be a non-negative number'))
  39.         });
  40.         it("check active method", () => {
  41.             expect(() =>(new PaymentPackage.active('')).to.throw('Active status must be a boolean'))
  42.             expect(() =>(new PaymentPackage.active(1)).to.throw('Active status must be a boolean'))
  43.         });
  44.         it("check toString with changes", () => {
  45.          let obj = new PaymentPackage('a', 100)
  46.          obj.active = false
  47.          obj.VAT = 30
  48.          expect(obj.toString()).to.equal('Package: a (inactive)\n- Value (excl. VAT): 100\n- Value (VAT 30%): 130');  
  49.         });
  50.         it("check toString without changes", () => {
  51.             let obj = new PaymentPackage('a', 100)
  52.             expect(obj.toString()).to.equal('Package: a\n- Value (excl. VAT): 100\n- Value (VAT 20%): 120');  
  53.         });
  54.        
  55. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement