UNPKG

1.79 kBJavaScriptView Raw
1// The test fixtures work like this:
2// These dirs are all created: {a,b,c}/{a,b,c}/{a,b,c}/
3// in each one, these files are created:
4// {.,}{a,b,c}{a,b,c}{a,b,c}
5//
6// So, there'll be a/b/c/abc, a/b/c/aba, etc., and dot-versions of each.
7//
8// Each test then writes their own ignore file rules for their purposes,
9// and is responsible for removing them afterwards.
10
11var mkdirp = require("mkdirp")
12var path = require("path")
13var i = 0
14var tap = require("tap")
15var fs = require("fs")
16var rimraf = require("rimraf")
17var fixtures = path.resolve(__dirname, "fixtures")
18
19var chars = ['a', 'b', 'c']
20var dirs = []
21
22for (var i = 0; i < 3; i ++) {
23 for (var j = 0; j < 3; j ++) {
24 for (var k = 0; k < 3; k ++) {
25 dirs.push(chars[i] + '/' + chars[j] + '/' + chars[k])
26 }
27 }
28}
29
30var files = []
31
32for (var i = 0; i < 3; i ++) {
33 for (var j = 0; j < 3; j ++) {
34 for (var k = 0; k < 3; k ++) {
35 files.push(chars[i] + chars[j] + chars[k])
36 files.push('.' + chars[i] + chars[j] + chars[k])
37 }
38 }
39}
40
41tap.test("remove fixtures", function (t) {
42 rimraf(path.resolve(__dirname, "fixtures"), function (er) {
43 t.ifError(er, "remove fixtures")
44 t.end()
45 })
46})
47
48tap.test("create fixtures", function (t) {
49 dirs.forEach(function (dir) {
50 dir = path.resolve(fixtures, dir)
51 t.test("mkdir "+dir, function (t) {
52 mkdirp(dir, function (er) {
53 t.ifError(er, "mkdir "+dir)
54 if (er) return t.end()
55
56 files.forEach(function (file) {
57 file = path.resolve(dir, file)
58 t.test("writeFile "+file, function (t) {
59 fs.writeFile(file, path.basename(file), function (er) {
60 t.ifError(er, "writing "+file)
61 t.end()
62 })
63 })
64 })
65 t.end()
66 })
67 })
68 })
69 t.end()
70})
71