New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

business-rules

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

business-rules

Business rules repository

latest
Source
npmnpm
Version
1.0.3
Version published
Weekly downloads
6
-75%
Maintainers
1
Weekly downloads
 
Created
Source

vacationApproval

Business rules for vacation approval. Vacation request validation rules:

  • employee
    • name -> first name + last name is required
  • duration
    • from and to is required
    • from and to must be valid dates (expect weekends)
    • from and to must be greater or equal today
    • from and to must be less or equal 1 year
    • from must be equal or before to field
    • minimal duration (without excluded days) is 1 day
    • maximal duration (without excluded days) is 25 days
    • excluded days - must be in range given by from and to
  • deputy
    • first name + last name of deputy is required
    • contact (email) is required
    • can not select deputy have approved vacation at the same days (async)
  • at least one deputy is required -> second deputy is optional

Basic usage

import moment = require('moment');
import _ = require('underscore');
import Validation = require('business-rules-engine');
import VacationApproval = require('./models/vacationApproval/node-business-rules.js');

//create test data
var data:VacationApproval.IVacationApprovalData = {
                Employee: {
                    FirstName: 'John',
                    LastName: 'Smith toooooooooooooooooooooooooo long'
                },
                Deputy1: {
                    Checked:true,
                    FirstName: 'Paul',
                    LastName: 'Neuman',
                    Email: 'pneuman@gmai.com'
                },
                Duration: {
                    From: new Date(),
                    To: moment(new Date()).add('days', 1).toDate()
                }
            };


//business rules for vacation approval
var businessRules = new VacationApproval.BusinessRules(data);

//execute validation
businessRules.Validate();

//verify and display results
if (businessRules.Errors.HasErrors) console.log(businessRules.Errors.ErrorMessage);

Output

Please enter no more than 15 characters.

Tests

Output of all business rules for vacation are under tests.

  business rules for vacation approval
    employee
      first name + last name
        √ fill no names
        √ fill empty names
        √ fill long names
        √ fill some names
    duration
      from and to fields
        √ fill no dates
        √ fill empty dates
        √ fill dates before today
        √ fill dates qreater than one year from today
        √ fill dates qreater than one year from today
        √ fill today
        √ fill one year from today
      duration in days
        √ zero duration
        √ negative duration
        √ minimal duration
        √ maximal duration 25 days (25 + 10 weekends) (108ms)
        √ too big duration 26 days (26 + 10 weekends) (103ms)
      excluded days are in duration range
        √ is in of duration range
        √ is one out of duration range
        √ is more than one out of duration range
    deputy
      first name + last name
        √ fill no names
        √ fill empty names
        √ fill long names
        √ fill some names
      email
        √ fill no email
        √ fill wrong email
        √ fill some email
    deputy check with list of all approved vacations that they are not in conflict
      √ fill employee with vacation and confict in days (1012ms)
      √ fill employee with vacation and confict in days (1015ms)
    complex test

      √ fill all fields correctly (1013ms)

  duration days
    range days
      √ the same days - return 1 day
      √ positive range - number of days
      √ negative range - zero day
    vacation days - exclude weekends
      √ positive range - one weekend
      √ negative range - zero day
      √ positive range - three weekends
    vacation days - specific exclude - e.g. public holiday
      √ within weekdays Wednesday, July 30th 2014

Keywords

business

FAQs

Package last updated on 20 Aug 2014

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts