UNPKG

2.84 kBJavaScriptView Raw
1const test = require('tape')
2const create = require('./helpers/create')
3
4test('can create a tag for the current version', t => {
5 var drive = create()
6 drive.writeFile('/hello.txt', 'world', err => {
7 t.error(err, 'no error')
8 const taggedVersion = drive.version
9 drive.createTag('version1', err => {
10 t.error(err, 'no error')
11 drive.getTaggedVersion('version1', (err, version) => {
12 t.error(err, 'no error')
13 t.same(version, taggedVersion)
14 t.end()
15 })
16 })
17 })
18})
19
20test('can create a tag for an explicit version', t => {
21 var drive = create()
22 drive.writeFile('/hello.txt', 'world', err => {
23 t.error(err, 'no error')
24 const taggedVersion = drive.version
25 drive.writeFile('/goodbye.txt', 'goodbye', err => {
26 t.error(err, 'no error')
27 drive.createTag('version1', taggedVersion, err => {
28 t.error(err, 'no error')
29 drive.getTaggedVersion('version1', (err, version) => {
30 t.error(err, 'no error')
31 t.same(version, taggedVersion)
32 t.end()
33 })
34 })
35 })
36 })
37})
38
39test('can list all tags', t => {
40 var drive = create()
41 const versions = new Map()
42
43 drive.writeFile('/hello.txt', 'world', err => {
44 t.error(err, 'no error')
45 versions.set('version1', drive.version)
46 drive.createTag('version1', err => {
47 t.error(err, 'no error')
48 drive.writeFile('/goodbye.txt', 'goodbye', err => {
49 t.error(err, 'no error')
50 versions.set('version2', drive.version)
51 drive.createTag('version2', err => {
52 t.error(err, 'no error')
53 return ontagged()
54 })
55 })
56 })
57 })
58
59 function ontagged () {
60 drive.getAllTags((err, tagMap) => {
61 t.error(err, 'no error')
62 t.same(tagMap.size, 2)
63 t.same(tagMap.get('version1'), versions.get('version1'))
64 t.same(tagMap.get('version2'), versions.get('version2'))
65 t.end()
66 })
67 }
68})
69
70test('can delete a tag', t => {
71 var drive = create()
72 const versions = new Map()
73
74 drive.writeFile('/hello.txt', 'world', err => {
75 t.error(err, 'no error')
76 versions.set('version1', drive.version)
77 drive.createTag('version1', err => {
78 t.error(err, 'no error')
79 drive.writeFile('/goodbye.txt', 'goodbye', err => {
80 t.error(err, 'no error')
81 versions.set('version2', drive.version)
82 drive.createTag('version2', err => {
83 t.error(err, 'no error')
84 drive.deleteTag('version1', err => {
85 t.error(err, 'no error')
86 return ontagged()
87 })
88 })
89 })
90 })
91 })
92
93 function ontagged () {
94 drive.getAllTags((err, tagMap) => {
95 t.error(err, 'no error')
96 t.same(tagMap.size, 1)
97 t.same(tagMap.get('version2'), versions.get('version2'))
98 t.false(tagMap.get('version1'))
99 t.end()
100 })
101 }
102})