Skip to content

Commit

Permalink
Added tests
Browse files Browse the repository at this point in the history
  • Loading branch information
PSTRC-Machine committed Sep 5, 2019
1 parent 38b5b20 commit 15e1971
Show file tree
Hide file tree
Showing 4 changed files with 158 additions and 18 deletions.
22 changes: 22 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Mocha Tests",
"program": "${workspaceFolder}/node_modules/mocha/bin/_mocha",
"args": [
"--require",
"babel-register",
"--reporter",
"spec",
"${workspaceFolder}/test"
],
"internalConsoleOptions": "openOnSessionStart"
}
]
}
24 changes: 11 additions & 13 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -533,22 +533,20 @@ exports.DatePicker = (options) => {
let date;
if (pickerField && pickerField.value && pickerField.value.length >= 10) {
date = parse(picker, pickerField.value);

picker.setSelected(
format(
picker,
date.getDate(),
date.getMonth() + 1,
date.getFullYear()
),
date.getDate(),
date.getMonth() + 1,
date.getFullYear()
);
} else {
picker.setSelected();
date = new Date();
}
picker.setSelected(
format(
picker,
date.getDate(),
date.getMonth() + 1,
date.getFullYear()
),
date.getDate(),
date.getMonth() + 1,
date.getFullYear()
);
return date;
},

Expand Down
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
"main": "index.js",
"scripts": {
"test": "mocha --require babel-register --reporter spec",
"test-live": "mocha --watch --require babel-register --reporter spec",
"cover": "nyc --reporter=lcov node_modules/mocha/bin/_mocha --require babel-register -R spec test/*"
},
"repository": {
Expand Down
129 changes: 124 additions & 5 deletions test/test.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,132 @@ const { expect } = require('chai');
require('jsdom-global')();
const { DatePicker } = require('../index');

const pickerId = 'rwp';
const pickerId = 'datepicker';
const today = new Date();
const todayAsISODate = today.toISOString().substr(0, 10);

describe('#rw-picker', () => {
afterEach(() => {
const el = document.getElementById(pickerId);
if (el) el.parentNode.removeChild(el);
beforeEach(() => {
document.body.innerHTML = `<input type="text" id="${pickerId}" />`;
});

describe('datepicker', () => {
it('must initialise', () => {
DatePicker({ id: pickerId });
const picker = document.getElementById(`rw-picker-${pickerId}`);
expect(picker).to.not.equal(null);
expect(picker.childNodes.length).to.equal(0);
expect(picker.nodeName.toLowerCase()).to.equal('div');
});

it('must open on field click', () => {
DatePicker({ id: pickerId });
const pickerField = document.getElementById(pickerId);
pickerField.click();
const picker = document.getElementById(`rw-picker-${pickerId}`);
expect(picker).to.not.equal(null);
expect(picker.childNodes.length).to.equal(1);
expect(picker.style.position).to.equal('fixed');
});
});

describe('.ISOValue', () => {
it('works for today as default', () => {
const dp = DatePicker({ id: pickerId });
expect(dp.ISOValue).to.equal(todayAsISODate);
});
});

document.querySelectorAll('html').className = '';
describe('date formats', () => {
it('does dd-MM-yyyy', () => {
const pickerField = document.getElementById(pickerId);
pickerField.value = '02-03-1986';
const dp = DatePicker({ id: pickerId, dateFormat: 'dd-MM-yyyy' });
expect(dp.ISOValue).to.equal('1986-03-02');
});
it('does dd/MM/yyyy', () => {
const pickerField = document.getElementById(pickerId);
pickerField.value = '02/03/1986';
const dp = DatePicker({ id: pickerId, dateFormat: 'dd/MM/yyyy' });
expect(dp.ISOValue).to.equal('1986-03-02');
});
it('does dd MMM yyyy', () => {
const pickerField = document.getElementById(pickerId);
pickerField.value = '02 Mar 1986';
const dp = DatePicker({ id: pickerId, dateFormat: 'dd MMM yyyy' });
expect(dp.ISOValue).to.equal('1986-03-02');
});
it('does MM-dd-yyyy', () => {
const pickerField = document.getElementById(pickerId);
pickerField.value = '03-02-1986';
const dp = DatePicker({ id: pickerId, dateFormat: 'MM-dd-yyyy' });
expect(dp.ISOValue).to.equal('1986-03-02');
});
it('does dd-MMM-yyyy', () => {
const pickerField = document.getElementById(pickerId);
pickerField.value = '02-Mar-1986';
const dp = DatePicker({ id: pickerId, dateFormat: 'dd-MMM-yyyy' });
expect(dp.ISOValue).to.equal('1986-03-02');
});
it('does yyyy-MMM-dd', () => {
const pickerField = document.getElementById(pickerId);
pickerField.value = '1986-Mar-02';
const dp = DatePicker({ id: pickerId, dateFormat: 'yyyy-MMM-dd' });
expect(dp.ISOValue).to.equal('1986-03-02');
});
it('does yyyy.MM.dd', () => {
const pickerField = document.getElementById(pickerId);
pickerField.value = '1986.03.02';
const dp = DatePicker({ id: pickerId, dateFormat: 'yyyy.MM.dd' });
expect(dp.ISOValue).to.equal('1986-03-02');
});
it('does yyyy.MMM.dd', () => {
const pickerField = document.getElementById(pickerId);
pickerField.value = '1986.Mar.02';
const dp = DatePicker({ id: pickerId, dateFormat: 'yyyy.MMM.dd' });
expect(dp.ISOValue).to.equal('1986-03-02');
});
it('does yyyy/MM/dd', () => {
const pickerField = document.getElementById(pickerId);
pickerField.value = '1986/03/02';
const dp = DatePicker({ id: pickerId, dateFormat: 'yyyy/MM/dd' });
expect(dp.ISOValue).to.equal('1986-03-02');
});
it('does yyyy/MMM/dd', () => {
const pickerField = document.getElementById(pickerId);
pickerField.value = '1986/Mar/02';
const dp = DatePicker({ id: pickerId, dateFormat: 'yyyy/MMM/dd' });
expect(dp.ISOValue).to.equal('1986-03-02');
});
it('does MM.dd.yyyy', () => {
const pickerField = document.getElementById(pickerId);
pickerField.value = '03.02.1986';
const dp = DatePicker({ id: pickerId, dateFormat: 'MM.dd.yyyy' });
expect(dp.ISOValue).to.equal('1986-03-02');
});
it('does MM/dd/yyyy', () => {
const pickerField = document.getElementById(pickerId);
pickerField.value = '03/02/1986';
const dp = DatePicker({ id: pickerId, dateFormat: 'MM/dd/yyyy' });
expect(dp.ISOValue).to.equal('1986-03-02');
});
it('does dd/MMM/yyyy', () => {
const pickerField = document.getElementById(pickerId);
pickerField.value = '02/Mar/1986';
const dp = DatePicker({ id: pickerId, dateFormat: 'dd/MMM/yyyy' });
expect(dp.ISOValue).to.equal('1986-03-02');
});
it('does dd.MM.yyyy', () => {
const pickerField = document.getElementById(pickerId);
pickerField.value = '02.03.1986';
const dp = DatePicker({ id: pickerId, dateFormat: 'dd.MM.yyyy' });
expect(dp.ISOValue).to.equal('1986-03-02');
});
it('does dd.MMM.yyyy', () => {
const pickerField = document.getElementById(pickerId);
pickerField.value = '02.Mar.1986';
const dp = DatePicker({ id: pickerId, dateFormat: 'dd.MMM.yyyy' });
expect(dp.ISOValue).to.equal('1986-03-02');
});
});
});

0 comments on commit 15e1971

Please sign in to comment.