I'm relatively new to Javascript, and was just writing some simple qunit tests. There is a lot of DRY opportunity here, so I was wondering how a JS pro would refactor this:
test("Add time to date (in seconds)", function () {
var d = new Date(),
dPlus = new Date(d.getTime())
dPlus.addSeconds(1)
ok(d.getTime() + 1000 === dPlus.getTime(), "Passed!")
})
test("Subtract from date (in seconds)", function () {
var d = new Date(),
dMinus = new Date(d.getTime())
dMinus.addSeconds(-1)
ok(d.getTime() - 1000 === dMinus.getTime(), "Passed!")
})
test("Add 0 to date (in seconds)", function () {
var d = new Date(),
dMinus = new Date(d.getTime())
dMinus.addSeconds(0)
ok(d.getTime() === dMinus.getTime(), "Passed!")
})
test("Add time to date (in minutes)", function () {
var d = new Date(),
dPlus = new Date(d.getTime())
dPlus.addMinutes(1)
ok(d.getTime() + (60 * 1000) === dPlus.getTime(), "Passed!")
})
test("Subtract from date (in minutes)", function () {
var d = new Date(),
dMinus = new Date(d.getTime())
dMinus.addMinutes(-1)
ok(d.getTime() - (60 * 1000) === dMinus.getTime(), "Passed!")
})
test("Add 0 to date (in minutes)", function () {
var d = new Date(),
dMinus = new Date(d.getTime())
dMinus.addMinutes(0)
ok(d.getTime() === dMinus.getTime(), "Passed!")
})
I suspect I could write a function that takes one parameters for the qty of time units, the function (addSeconds, addMinutes), and either the expected offset or a function to calculate it, just not sure what the idiomatic way to write it would be.
testSeconds(secondsToAdd)function and code from 2 last functions totestMinutes(minutesToAdd). This would definitely reduce amount of code.