UNPKG

2.1 kBJavaScriptView Raw
1var
2 vows = require('vows'),
3 assert = require('assert'),
4
5 path = require('path'),
6
7 tmp = require('../lib/tmp.js'),
8 Test = require('./base.js');
9
10vows.describe('Name creation').addBatch({
11 'when using without parameters': {
12 topic: function () {
13 tmp.tmpName(this.callback);
14 },
15
16 'should not return with error': assert.isNull,
17 'should have the default prefix': Test.testPrefix('tmp-')
18 },
19
20 'when using with prefix': {
21 topic: function () {
22 tmp.tmpName({ prefix: 'something' }, this.callback);
23 },
24
25 'should not return with error': assert.isNull,
26 'should have the provided prefix': Test.testPrefix('something')
27 },
28
29 'when using with postfix': {
30 topic: function () {
31 tmp.tmpName({ postfix: '.txt' }, this.callback);
32 },
33
34 'should not return with error': assert.isNull,
35 'should have the provided postfix': Test.testPostfix('.txt')
36
37 },
38
39 'when using template': {
40 topic: function () {
41 tmp.tmpName({ template: path.join(tmp.tmpdir, 'clike-XXXXXX-postfix') }, this.callback);
42 },
43
44 'should not return with error': assert.isNull,
45 'should have the provided prefix': Test.testPrefix('clike-'),
46 'should have the provided postfix': Test.testPostfix('-postfix'),
47 'should have template filled': function (err, name) {
48 assert.isTrue(/[a-zA-Z0-9]{6}/.test(name));
49 }
50 },
51
52 'when using multiple options': {
53 topic: function () {
54 tmp.tmpName({ prefix: 'foo', postfix: 'bar', tries: 5 }, this.callback);
55 },
56
57 'should not return with error': assert.isNull,
58 'should have the provided prefix': Test.testPrefix('foo'),
59 'should have the provided postfix': Test.testPostfix('bar')
60 },
61
62 'no tries': {
63 topic: function () {
64 tmp.tmpName({ tries: -1 }, this.callback);
65 },
66
67 'should fail': function (err, name) {
68 assert.isObject(err);
69 }
70 },
71
72 'tries not numeric': {
73 topic: function () {
74 tmp.tmpName({ tries: 'hello'}, this.callback);
75 },
76
77 'should fail': function (err, name) {
78 assert.isObject(err);
79 }
80 }
81
82}).exportTo(module);