UNPKG

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
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(); };