Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- describe('PaymentPackageClass', () => {
- describe('Test name property', () => {
- it('Throw an error for empty string', () => {
- try { new PaymentPackage('', 123); } catch (err) { expect(err.message).to.equal('Name must be a non-empty string'); }
- });
- it('Throw an error for invalid type for name property', () => {
- try { new PaymentPackage(true, 123); } catch (err) { expect(err.message).to.equal('Name must be a non-empty string'); }
- });
- it('Creates an object with proper name', () => { const obj = new PaymentPackage('Simo', 123); expect(obj.name).to.equal('Simo'); });
- it('Throw an error for no inputs', () => { try { new PaymentPackage(); } catch (err) { expect(err.message).to.equal('Name must be a non-empty string'); } });
- it('Return right changed name', () => {
- const obj = new PaymentPackage('Simo', 123);
- obj.name = 'Maris';
- expect(obj.name).to.equal('Maris');
- });
- it('Throw an error when changing name', () => {
- const obj = new PaymentPackage('Simo', 1);
- try { obj.name = null; }
- catch (err) { expect(err.message).to.equal('Name must be a non-empty string'); }
- });
- });
- describe('Test value property', () => {
- it('Throw an error for non number property', () => {
- try { new PaymentPackage('Simo', 'Miro'); }
- catch (err) { expect(err.message).to.equal('Value must be a non-negative number'); }
- });
- it('Throw an error for negative number', () => {
- try { new PaymentPackage('Simo', -5); }
- catch (err) { expect(err.message).to.equal('Value must be a non-negative number'); }
- });
- it('Create obj normally', () => { const obj = new PaymentPackage('Simo', 1); expect(obj.value).to.equal(1); });
- it('Throw an error for changed value', () => {
- const obj = new PaymentPackage('Simo', 1);
- try { obj.value = -4; } catch (err) { expect(err.message).to.equal('Value must be a non-negative number'); }
- });
- it('Returns 0 value', () => {
- const obj = new PaymentPackage('Simo', 0);
- expect(obj.value).to.equal(0);
- });
- });
- describe('Test VAT property', () => {
- it('Return default VAT', () => { const obj = new PaymentPackage('Simo', 1); expect(obj.VAT).to.equal(20); });
- it('Throw an error for invalid inputs', () => {
- try { const obj = new PaymentPackage('Simo', 1); obj.VAT = 'asd'; }
- catch (err) { expect(err.message).to.equal('VAT must be a non-negative number'); }
- });
- it('Throw an error for negative number', () => {
- try { const obj = new PaymentPackage('Simo', 1); obj.VAT = -1; }
- catch (err) { expect(err.message).to.equal('VAT must be a non-negative number'); }
- });
- it ('Return 0', () => {
- const obj = new PaymentPackage('Simo', 1);
- obj.VAT = 0;
- expect(obj.VAT).to.equal(0);
- });
- });
- describe('Test active property', () => {
- it('Return default active status', () => { const obj = new PaymentPackage('Simo', 1); expect(obj.active).to.be.true; });
- it('Throw an error for invalid type', () => {
- try { const obj = new PaymentPackage('Simo', 1); obj.active = 'ad'; }
- catch (err) { expect(err.message).to.equal('Active status must be a boolean'); }
- });
- it('Throw an error for invalid type null', () => {
- try { const obj = new PaymentPackage('Simo', 1); obj.active = null; }
- catch (err) { expect(err.message).to.equal('Active status must be a boolean'); }
- });
- });
- describe('Test toString', () => {
- it('Return a string representation', () => {
- const obj = new PaymentPackage('HR Services', 1500);
- expect(obj.toString()).to.equal('Package: HR Services\n- Value (excl. VAT): 1500\n- Value (VAT 20%): 1800');
- });
- it('Append inactive', () => {
- const obj = new PaymentPackage('Consultation', 800);
- obj.active = false;
- expect(obj.toString()).to.equal('Package: Consultation (inactive)\n- Value (excl. VAT): 800\n- Value (VAT 20%): 960');
- });
- });
- describe('Test have full properties', () => {
- it('return all properties', () => {
- const obj = new PaymentPackage('Simo', 1);
- assert.equal(obj._name, 'Simo');
- assert.equal(obj._value, 1);
- assert.equal(obj._VAT, 20);
- assert.equal(obj._active, true);
- expect(obj instanceof PaymentPackage).to.be.true;
- expect(obj).to.respondTo('toString');
- });
- });
- });
Add Comment
Please, Sign In to add comment