schedulejs
Version:
Schedule tasks, meetings, appointments, etc
71 lines (58 loc) • 2.87 kB
JavaScript
var schedule = require('../../index'),
later = require('later'),
should = require('should');
describe('Resources', function() {
it('should support custom id function', function() {
should.exist(schedule.resources().id);
});
it('should support a custom schedule function', function() {
should.exist(schedule.resources().available);
});
it('should support a custom isNotReservable function', function() {
should.exist(schedule.resources().isNotReservable);
});
it('should return resources in a list using defaults', function() {
var sched = later.parse.recur().after('8:00').time().before('17:00').time(),
resources = [ {id: 1, available: sched}, {id: 2, available: sched}, {id: 3, available: sched} ],
expected = [
{id: 1, available: sched, isNotReservable: false},
{id: 2, available: sched, isNotReservable: false},
{id: 3, available: sched, isNotReservable: false}
],
actual = schedule.resources()(resources);
actual.should.eql(expected);
});
it('should return resources in a list using a custom id function', function() {
var sched = later.parse.recur().after('8:00').time().before('17:00').time(),
resources = [ {foo: 1, available: sched}, {foo: 2, available: sched}, {foo: 3, available: sched} ],
expected = [
{id: 1, available: sched, isNotReservable: false},
{id: 2, available: sched, isNotReservable: false},
{id: 3, available: sched, isNotReservable: false}
],
actual = schedule.resources().id(function(d){return d.foo;})(resources);
actual.should.eql(expected);
});
it('should return resources in a list using a custom schedule function', function() {
var sched = later.parse.recur().after('8:00').time().before('17:00').time(),
resources = [ {id: 1, foo: sched}, {id: 2, foo: sched}, {id: 3, foo: sched} ],
expected = [
{id: 1, available: sched, isNotReservable: false},
{id: 2, available: sched, isNotReservable: false},
{id: 3, available: sched, isNotReservable: false}
],
actual = schedule.resources().available(function(d){return d.foo;})(resources);
actual.should.eql(expected);
});
it('should return resources in a list using a custom reservable function', function() {
var sched = later.parse.recur().after('8:00').time().before('17:00').time(),
resources = [ {id: 1, available: sched}, {id: 2, available: sched}, {id: 3, available: sched} ],
expected = [
{id: 1, available: sched, isNotReservable: true},
{id: 2, available: sched, isNotReservable: true},
{id: 3, available: sched, isNotReservable: true}
],
actual = schedule.resources().isNotReservable(true)(resources);
actual.should.eql(expected);
});
});