invoice-fs
Version:
Nostalgic command-line invoicing application producing plain text invoices and JSON data structures. Uses the file system as a database
46 lines (36 loc) • 1.46 kB
JavaScript
var state = require('../lib/state'),
number = state.get('number'),
paths = state.get('paths'),
fs = require('fs'),
generator = require('../lib/invoiceNumberGenerator');
exports.testPadWhenNarrow = function (test) {
test.equals(generator.padWhenNarrow(5, 999), "00999", "The number was not padded correctly");
test.equals(generator.padWhenNarrow(5, 99999), "99999", "The number was not padded correctly");
test.equals(generator.padWhenNarrow(5, 9999999), "9999999", "The number was not padded correctly");
test.done();
};
exports.testGet = function (test) {
test.equals(generator.getInvoiceNumber(), "TEST00001X", "The number was not generated correctly");
test.equals(generator.getInvoiceNumber(), "TEST00002X", "The number was not generated correctly");
test.equals(generator.getInvoiceNumber(), "TEST00003X", "The number was not generated correctly");
test.done();
};
exports.setUp = function (callback) {
state.set('number', 1);
state.set('numberPrefix', "TEST");
state.set('numberSuffix', "X");
state.set('minimumNumberWidth', 5, function() {
callback();
});
};
exports.tearDown = function (callback) {
state.set('number', number);
fs.readdir(paths.invoices, function(err, files) {
for (file in files) {
if (files[file].match(/^TEST/)) {
fs.unlink(paths.invoices + files[file]);
}
}
});
callback();
};