@ibgib/vcs-gib 0.0.18 → 0.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AUTO-GENERATED-version.d.mts +1 -1
- package/dist/AUTO-GENERATED-version.mjs +1 -1
- package/dist/bootstrap/node-bootstrap.d.mts.map +1 -1
- package/dist/bootstrap/node-bootstrap.mjs +2 -2
- package/dist/bootstrap/node-bootstrap.mjs.map +1 -1
- package/dist/cli/commands/branch-cmd.d.mts.map +1 -1
- package/dist/cli/commands/branch-cmd.mjs.map +1 -1
- package/dist/cli/commands/merge-cmd.d.mts.map +1 -1
- package/dist/cli/commands/merge-cmd.mjs +1 -1
- package/dist/cli/commands/merge-cmd.mjs.map +1 -1
- package/dist/engine/item/item-helper.d.mts +1 -0
- package/dist/engine/item/item-helper.d.mts.map +1 -1
- package/dist/engine/item/item-helper.mjs +13 -3
- package/dist/engine/item/item-helper.mjs.map +1 -1
- package/dist/engine/item/item-types.d.mts +1 -0
- package/dist/engine/item/item-types.d.mts.map +1 -1
- package/dist/engine/merge/b2tfs-3way-merge-strategy.d.mts +12 -2
- package/dist/engine/merge/b2tfs-3way-merge-strategy.d.mts.map +1 -1
- package/dist/engine/merge/b2tfs-3way-merge-strategy.mjs +384 -236
- package/dist/engine/merge/b2tfs-3way-merge-strategy.mjs.map +1 -1
- package/dist/engine/merge/b2tfs-3way-merge-types.d.mts +41 -0
- package/dist/engine/merge/b2tfs-3way-merge-types.d.mts.map +1 -0
- package/dist/engine/merge/b2tfs-3way-merge-types.mjs +2 -0
- package/dist/engine/merge/b2tfs-3way-merge-types.mjs.map +1 -0
- package/package.json +5 -5
- package/src/AUTO-GENERATED-version.mts +1 -1
- package/src/bootstrap/node-bootstrap.mts +4 -3
- package/src/cli/commands/branch-checkout-cmd.respec.log +111 -0
- package/src/cli/commands/branch-cmd.mts +2 -4
- package/src/cli/commands/merge-cmd.mts +2 -6
- package/src/engine/item/item-helper.mts +15 -9
- package/src/engine/item/item-types.mts +2 -1
- package/src/engine/merge/b2tfs-3way-merge-strategy.mts +388 -261
- package/src/engine/merge/b2tfs-3way-merge-strategy.respec.log +39 -0
- package/src/engine/merge/{b2tfs-merge-strategy.respec.mts → b2tfs-3way-merge-strategy.respec.mts} +16 -13
- package/src/engine/merge/b2tfs-3way-merge-types.mts +42 -0
- package/tsconfig.json +3 -2
- package/tsconfig.test.json +10 -0
- package/tsconfig.test.tsbuildinfo +1 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/assumptions.respec.d.mts +0 -2
- package/dist/assumptions.respec.d.mts.map +0 -1
- package/dist/assumptions.respec.mjs +0 -41
- package/dist/assumptions.respec.mjs.map +0 -1
- package/dist/bootstrap/node-bootstrap.respec.d.mts +0 -7
- package/dist/bootstrap/node-bootstrap.respec.d.mts.map +0 -1
- package/dist/bootstrap/node-bootstrap.respec.mjs +0 -28
- package/dist/bootstrap/node-bootstrap.respec.mjs.map +0 -1
- package/dist/cli/cli-arg-parser.respec.d.mts +0 -7
- package/dist/cli/cli-arg-parser.respec.d.mts.map +0 -1
- package/dist/cli/cli-arg-parser.respec.mjs +0 -35
- package/dist/cli/cli-arg-parser.respec.mjs.map +0 -1
- package/dist/cli/cli-e2e.respec.d.mts +0 -8
- package/dist/cli/cli-e2e.respec.d.mts.map +0 -1
- package/dist/cli/cli-e2e.respec.mjs +0 -263
- package/dist/cli/cli-e2e.respec.mjs.map +0 -1
- package/dist/cli/commands/branch-checkout-cmd.respec.d.mts +0 -7
- package/dist/cli/commands/branch-checkout-cmd.respec.d.mts.map +0 -1
- package/dist/cli/commands/branch-checkout-cmd.respec.mjs +0 -452
- package/dist/cli/commands/branch-checkout-cmd.respec.mjs.map +0 -1
- package/dist/cli/commands/commit-log-cmd.respec.d.mts +0 -7
- package/dist/cli/commands/commit-log-cmd.respec.d.mts.map +0 -1
- package/dist/cli/commands/commit-log-cmd.respec.mjs +0 -251
- package/dist/cli/commands/commit-log-cmd.respec.mjs.map +0 -1
- package/dist/cli/commands/init-cmd.respec.d.mts +0 -7
- package/dist/cli/commands/init-cmd.respec.d.mts.map +0 -1
- package/dist/cli/commands/init-cmd.respec.mjs +0 -40
- package/dist/cli/commands/init-cmd.respec.mjs.map +0 -1
- package/dist/cli/commands/reset-restore-cmd.respec.d.mts +0 -7
- package/dist/cli/commands/reset-restore-cmd.respec.d.mts.map +0 -1
- package/dist/cli/commands/reset-restore-cmd.respec.mjs +0 -185
- package/dist/cli/commands/reset-restore-cmd.respec.mjs.map +0 -1
- package/dist/cli/commands/status-add-cmd.respec.d.mts +0 -7
- package/dist/cli/commands/status-add-cmd.respec.d.mts.map +0 -1
- package/dist/cli/commands/status-add-cmd.respec.mjs +0 -239
- package/dist/cli/commands/status-add-cmd.respec.mjs.map +0 -1
- package/dist/engine/branch/branch-space.respec.d.mts +0 -8
- package/dist/engine/branch/branch-space.respec.d.mts.map +0 -1
- package/dist/engine/branch/branch-space.respec.mjs +0 -143
- package/dist/engine/branch/branch-space.respec.mjs.map +0 -1
- package/dist/engine/diff/line-diff-helper.respec.d.mts +0 -7
- package/dist/engine/diff/line-diff-helper.respec.d.mts.map +0 -1
- package/dist/engine/diff/line-diff-helper.respec.mjs +0 -66
- package/dist/engine/diff/line-diff-helper.respec.mjs.map +0 -1
- package/dist/engine/filter/glob-helper.respec.d.mts +0 -7
- package/dist/engine/filter/glob-helper.respec.d.mts.map +0 -1
- package/dist/engine/filter/glob-helper.respec.mjs +0 -78
- package/dist/engine/filter/glob-helper.respec.mjs.map +0 -1
- package/dist/engine/item/item.respec.d.mts +0 -7
- package/dist/engine/item/item.respec.d.mts.map +0 -1
- package/dist/engine/item/item.respec.mjs +0 -75
- package/dist/engine/item/item.respec.mjs.map +0 -1
- package/dist/engine/merge/b2tfs-merge-strategy.respec.d.mts +0 -7
- package/dist/engine/merge/b2tfs-merge-strategy.respec.d.mts.map +0 -1
- package/dist/engine/merge/b2tfs-merge-strategy.respec.mjs +0 -335
- package/dist/engine/merge/b2tfs-merge-strategy.respec.mjs.map +0 -1
- package/dist/vcs-gib.respec.d.mts +0 -8
- package/dist/vcs-gib.respec.d.mts.map +0 -1
- package/dist/vcs-gib.respec.mjs +0 -82
- package/dist/vcs-gib.respec.mjs.map +0 -1
|
@@ -1,239 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module status-add-cmd.respec
|
|
3
|
-
*
|
|
4
|
-
* Unit tests for `vcs status` and `vcs add` command handlers.
|
|
5
|
-
*/
|
|
6
|
-
import path from 'node:path';
|
|
7
|
-
import fs from 'node:fs/promises';
|
|
8
|
-
import { respecfully, ifWe, iReckon } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
|
|
9
|
-
import { executeInitCmd } from './init-cmd.mjs';
|
|
10
|
-
import { executeStatusCmd } from './status-cmd.mjs';
|
|
11
|
-
import { executeAddCmd } from './add-cmd.mjs';
|
|
12
|
-
import { executeCommitCmd } from './commit-cmd.mjs';
|
|
13
|
-
import { bootstrapVcsMetaspace } from '../../bootstrap/node-bootstrap.mjs';
|
|
14
|
-
import { getB2tFSIndexIbGib } from '../../engine/index/index-helper.mjs';
|
|
15
|
-
const lc = `[apps/vcs-gib/src/cli/commands/status-add-cmd.respec.node.mts]`;
|
|
16
|
-
await respecfully(lc, `vcs status and vcs add Command Handlers`, async () => {
|
|
17
|
-
await ifWe(lc, `detects untracked files in fresh repository`, async () => {
|
|
18
|
-
const testDir = path.join(process.cwd(), '.test_status_add_1');
|
|
19
|
-
const vcsFolderName = '.vcsgib_test_1';
|
|
20
|
-
try {
|
|
21
|
-
await executeInitCmd({
|
|
22
|
-
targetDir: testDir,
|
|
23
|
-
vcsFolderName,
|
|
24
|
-
quiet: true,
|
|
25
|
-
});
|
|
26
|
-
await fs.writeFile(path.join(testDir, 'hello.txt'), 'Hello ibgib!', 'utf8');
|
|
27
|
-
const statusRes = await executeStatusCmd({
|
|
28
|
-
targetDir: testDir,
|
|
29
|
-
vcsFolderName,
|
|
30
|
-
quiet: true,
|
|
31
|
-
});
|
|
32
|
-
iReckon(lc, statusRes.branchName).willEqual('main');
|
|
33
|
-
iReckon(lc, statusRes.untracked.map(x => x.path)).includes('hello.txt');
|
|
34
|
-
iReckon(lc, statusRes.staged.length).willEqual(0);
|
|
35
|
-
}
|
|
36
|
-
finally {
|
|
37
|
-
await fs.rm(testDir, { recursive: true, force: true });
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
await ifWe(lc, `discovers .vcsgib via upward discovery when executed from a subfolder`, async () => {
|
|
41
|
-
const testDir = path.join(process.cwd(), '.test_status_add_subfolder');
|
|
42
|
-
const vcsFolderName = '.vcsgib_test_subfolder';
|
|
43
|
-
try {
|
|
44
|
-
await executeInitCmd({
|
|
45
|
-
targetDir: testDir,
|
|
46
|
-
vcsFolderName,
|
|
47
|
-
quiet: true,
|
|
48
|
-
});
|
|
49
|
-
const subDir = path.join(testDir, 'src', 'components');
|
|
50
|
-
await fs.mkdir(subDir, { recursive: true });
|
|
51
|
-
await fs.writeFile(path.join(subDir, 'Button.tsx'), 'export const Button = () => null;', 'utf8');
|
|
52
|
-
const statusRes = await executeStatusCmd({
|
|
53
|
-
targetDir: subDir,
|
|
54
|
-
vcsFolderName,
|
|
55
|
-
quiet: true,
|
|
56
|
-
});
|
|
57
|
-
iReckon(lc, statusRes.branchName).willEqual('main');
|
|
58
|
-
iReckon(lc, statusRes.untracked.map(x => x.path)).includes('src/components/Button.tsx');
|
|
59
|
-
}
|
|
60
|
-
finally {
|
|
61
|
-
await fs.rm(testDir, { recursive: true, force: true });
|
|
62
|
-
}
|
|
63
|
-
});
|
|
64
|
-
await ifWe(lc, `skips re-staging unmodified committed files during executeAddCmd with all flag`, async () => {
|
|
65
|
-
const testDir = path.join(process.cwd(), '.test_status_add_unmodified');
|
|
66
|
-
const vcsFolderName = '.vcsgib_test_unmodified';
|
|
67
|
-
try {
|
|
68
|
-
await executeInitCmd({
|
|
69
|
-
targetDir: testDir,
|
|
70
|
-
vcsFolderName,
|
|
71
|
-
quiet: true,
|
|
72
|
-
});
|
|
73
|
-
await fs.writeFile(path.join(testDir, 'file.txt'), 'Initial Content', 'utf8');
|
|
74
|
-
await executeAddCmd({
|
|
75
|
-
paths: ['file.txt'],
|
|
76
|
-
targetDir: testDir,
|
|
77
|
-
vcsFolderName,
|
|
78
|
-
quiet: true,
|
|
79
|
-
});
|
|
80
|
-
await executeCommitCmd({
|
|
81
|
-
message: 'Initial commit',
|
|
82
|
-
targetDir: testDir,
|
|
83
|
-
vcsFolderName,
|
|
84
|
-
quiet: true,
|
|
85
|
-
});
|
|
86
|
-
// Run add -a again when file is unmodified
|
|
87
|
-
const addRes = await executeAddCmd({
|
|
88
|
-
all: true,
|
|
89
|
-
targetDir: testDir,
|
|
90
|
-
vcsFolderName,
|
|
91
|
-
quiet: true,
|
|
92
|
-
});
|
|
93
|
-
iReckon(lc, addRes.stagedCount).willEqual(0);
|
|
94
|
-
iReckon(lc, addRes.stagedPaths.length).willEqual(0);
|
|
95
|
-
}
|
|
96
|
-
finally {
|
|
97
|
-
await fs.rm(testDir, { recursive: true, force: true });
|
|
98
|
-
}
|
|
99
|
-
});
|
|
100
|
-
await ifWe(lc, `stages untracked file via executeAddCmd`, async () => {
|
|
101
|
-
const testDir = path.join(process.cwd(), '.test_status_add_2');
|
|
102
|
-
const vcsFolderName = '.vcsgib_test_2';
|
|
103
|
-
try {
|
|
104
|
-
await executeInitCmd({
|
|
105
|
-
targetDir: testDir,
|
|
106
|
-
vcsFolderName,
|
|
107
|
-
quiet: true,
|
|
108
|
-
});
|
|
109
|
-
await fs.writeFile(path.join(testDir, 'file1.txt'), 'Content 1', 'utf8');
|
|
110
|
-
await fs.writeFile(path.join(testDir, 'file2.txt'), 'Content 2', 'utf8');
|
|
111
|
-
const addRes = await executeAddCmd({
|
|
112
|
-
paths: ['file1.txt'],
|
|
113
|
-
targetDir: testDir,
|
|
114
|
-
vcsFolderName,
|
|
115
|
-
quiet: true,
|
|
116
|
-
});
|
|
117
|
-
iReckon(lc, addRes.stagedPaths).includes('file1.txt');
|
|
118
|
-
const { localSpace, vcsPath } = await bootstrapVcsMetaspace({
|
|
119
|
-
repoPath: testDir,
|
|
120
|
-
vcsFolderName,
|
|
121
|
-
});
|
|
122
|
-
const indexIbGib = await getB2tFSIndexIbGib({ space: localSpace, vcsPath });
|
|
123
|
-
iReckon(lc, Boolean(indexIbGib?.data?.staged_item && indexIbGib.data.staged_item.length > 0)).isGonnaBeTrue();
|
|
124
|
-
iReckon(lc, indexIbGib?.rel8ns?.staged_item).isGonnaBeFalsy();
|
|
125
|
-
const statusRes = await executeStatusCmd({
|
|
126
|
-
targetDir: testDir,
|
|
127
|
-
vcsFolderName,
|
|
128
|
-
quiet: true,
|
|
129
|
-
});
|
|
130
|
-
iReckon(lc, statusRes.staged.map(x => x.path)).includes('file1.txt');
|
|
131
|
-
iReckon(lc, statusRes.untracked.map(x => x.path)).includes('file2.txt');
|
|
132
|
-
iReckon(lc, statusRes.untracked.map(x => x.path)).not.includes('file1.txt');
|
|
133
|
-
}
|
|
134
|
-
finally {
|
|
135
|
-
await fs.rm(testDir, { recursive: true, force: true });
|
|
136
|
-
}
|
|
137
|
-
});
|
|
138
|
-
await ifWe(lc, `respects .ibgibignore patterns during status and add`, async () => {
|
|
139
|
-
const testDir = path.join(process.cwd(), '.test_status_add_3');
|
|
140
|
-
const vcsFolderName = '.vcsgib_test_3';
|
|
141
|
-
try {
|
|
142
|
-
await executeInitCmd({
|
|
143
|
-
targetDir: testDir,
|
|
144
|
-
vcsFolderName,
|
|
145
|
-
quiet: true,
|
|
146
|
-
});
|
|
147
|
-
await fs.writeFile(path.join(testDir, '.ibgibignore'), 'ignored.txt\ntemp/\n', 'utf8');
|
|
148
|
-
await fs.writeFile(path.join(testDir, 'ignored.txt'), 'Secrets', 'utf8');
|
|
149
|
-
await fs.writeFile(path.join(testDir, 'tracked.txt'), 'Public', 'utf8');
|
|
150
|
-
await fs.mkdir(path.join(testDir, 'temp'), { recursive: true });
|
|
151
|
-
await fs.writeFile(path.join(testDir, 'temp/cache.dat'), 'Cache', 'utf8');
|
|
152
|
-
const statusRes = await executeStatusCmd({
|
|
153
|
-
targetDir: testDir,
|
|
154
|
-
vcsFolderName,
|
|
155
|
-
quiet: true,
|
|
156
|
-
});
|
|
157
|
-
iReckon(lc, statusRes.untracked.map(x => x.path)).includes('tracked.txt');
|
|
158
|
-
iReckon(lc, statusRes.untracked.map(x => x.path)).not.includes('ignored.txt');
|
|
159
|
-
iReckon(lc, statusRes.untracked.map(x => x.path)).not.includes('temp/cache.dat');
|
|
160
|
-
const addRes = await executeAddCmd({
|
|
161
|
-
all: true,
|
|
162
|
-
targetDir: testDir,
|
|
163
|
-
vcsFolderName,
|
|
164
|
-
quiet: true,
|
|
165
|
-
});
|
|
166
|
-
iReckon(lc, addRes.stagedPaths).includes('tracked.txt');
|
|
167
|
-
iReckon(lc, addRes.stagedPaths).not.includes('ignored.txt');
|
|
168
|
-
iReckon(lc, addRes.stagedPaths).not.includes('temp/cache.dat');
|
|
169
|
-
}
|
|
170
|
-
finally {
|
|
171
|
-
await fs.rm(testDir, { recursive: true, force: true });
|
|
172
|
-
}
|
|
173
|
-
});
|
|
174
|
-
await ifWe(lc, `stages files matching glob pattern with executeAddCmd`, async () => {
|
|
175
|
-
const testDir = path.join(process.cwd(), '.test_status_add_glob');
|
|
176
|
-
const vcsFolderName = '.vcsgib_test_glob';
|
|
177
|
-
try {
|
|
178
|
-
await executeInitCmd({
|
|
179
|
-
targetDir: testDir,
|
|
180
|
-
vcsFolderName,
|
|
181
|
-
quiet: true,
|
|
182
|
-
});
|
|
183
|
-
await fs.writeFile(path.join(testDir, 'app.js'), 'console.log("app");', 'utf8');
|
|
184
|
-
await fs.writeFile(path.join(testDir, 'utils.js'), 'console.log("utils");', 'utf8');
|
|
185
|
-
await fs.writeFile(path.join(testDir, 'index.html'), '<html></html>', 'utf8');
|
|
186
|
-
const addRes = await executeAddCmd({
|
|
187
|
-
paths: ['*.js'],
|
|
188
|
-
targetDir: testDir,
|
|
189
|
-
vcsFolderName,
|
|
190
|
-
quiet: true,
|
|
191
|
-
});
|
|
192
|
-
iReckon(lc, addRes.stagedPaths).includes('app.js');
|
|
193
|
-
iReckon(lc, addRes.stagedPaths).includes('utils.js');
|
|
194
|
-
iReckon(lc, addRes.stagedPaths).not.includes('index.html');
|
|
195
|
-
let errorThrown = false;
|
|
196
|
-
try {
|
|
197
|
-
await executeAddCmd({
|
|
198
|
-
paths: ['*.xyz'],
|
|
199
|
-
targetDir: testDir,
|
|
200
|
-
vcsFolderName,
|
|
201
|
-
quiet: true,
|
|
202
|
-
});
|
|
203
|
-
}
|
|
204
|
-
catch (err) {
|
|
205
|
-
errorThrown = true;
|
|
206
|
-
iReckon(lc, err.message).includes('No files matched glob pattern: *.xyz');
|
|
207
|
-
}
|
|
208
|
-
iReckon(lc, errorThrown).isGonnaBeTrue();
|
|
209
|
-
}
|
|
210
|
-
finally {
|
|
211
|
-
await fs.rm(testDir, { recursive: true, force: true });
|
|
212
|
-
}
|
|
213
|
-
});
|
|
214
|
-
await ifWe(lc, `stages relative file paths correctly when targetDir is a subdirectory`, async () => {
|
|
215
|
-
const testDir = path.join(process.cwd(), '.test_status_add_subdir');
|
|
216
|
-
const vcsFolderName = '.vcsgib_test_subdir';
|
|
217
|
-
try {
|
|
218
|
-
await executeInitCmd({
|
|
219
|
-
targetDir: testDir,
|
|
220
|
-
vcsFolderName,
|
|
221
|
-
quiet: true,
|
|
222
|
-
});
|
|
223
|
-
const subDir = path.join(testDir, 'src', 'utils');
|
|
224
|
-
await fs.mkdir(subDir, { recursive: true });
|
|
225
|
-
await fs.writeFile(path.join(subDir, 'math.js'), 'export const add = (a, b) => a + b;', 'utf8');
|
|
226
|
-
const addRes = await executeAddCmd({
|
|
227
|
-
paths: ['math.js'],
|
|
228
|
-
targetDir: subDir,
|
|
229
|
-
vcsFolderName,
|
|
230
|
-
quiet: true,
|
|
231
|
-
});
|
|
232
|
-
iReckon(lc, addRes.stagedPaths).includes('src/utils/math.js');
|
|
233
|
-
}
|
|
234
|
-
finally {
|
|
235
|
-
await fs.rm(testDir, { recursive: true, force: true });
|
|
236
|
-
}
|
|
237
|
-
});
|
|
238
|
-
});
|
|
239
|
-
//# sourceMappingURL=status-add-cmd.respec.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"status-add-cmd.respec.mjs","sourceRoot":"","sources":["../../../src/cli/commands/status-add-cmd.respec.mts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"branch-space.respec.d.mts","sourceRoot":"","sources":["../../../src/engine/branch/branch-space.respec.mts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module branch-space.respec.node
|
|
3
|
-
*
|
|
4
|
-
* Unit tests for branch space helper, space-qualified address formatting/parsing,
|
|
5
|
-
* and graph population into branch spaces.
|
|
6
|
-
*/
|
|
7
|
-
import path from 'node:path';
|
|
8
|
-
import fs from 'node:fs/promises';
|
|
9
|
-
import { respecfully, ifWe, iReckon } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
|
|
10
|
-
import { ROOT } from '@ibgib/ts-gib/dist/V1/constants.mjs';
|
|
11
|
-
import { Factory_V1 } from '@ibgib/ts-gib/dist/V1/factory.mjs';
|
|
12
|
-
import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
|
|
13
|
-
import { getFromSpace, persistTransformResult } from '@ibgib/core-gib/dist/witness/space/space-helper.mjs';
|
|
14
|
-
import { bootstrapVcsMetaspace } from '../../bootstrap/node-bootstrap.mjs';
|
|
15
|
-
import { getB2tFSItemIb } from '../item/item-atom-helper.mjs';
|
|
16
|
-
import { getOrCreateBranchSpace } from './branch-space-helper.mjs';
|
|
17
|
-
import { populateBranchSpaceFromGraph } from './branch-graph-helper.mjs';
|
|
18
|
-
import { getSpaceQualifiedIbGibAddr, parseSpaceQualifiedIbGibAddr } from '../index/index-helper.mjs';
|
|
19
|
-
const lc = `[apps/vcs-gib/src/engine/branch/branch-space.respec.node.mts]`;
|
|
20
|
-
await respecfully(lc, `Branch Space & Graph Helper Respecs`, async () => {
|
|
21
|
-
await respecfully(lc, `Space-Qualified Address Parsing & Formatting`, async () => {
|
|
22
|
-
await ifWe(lc, `formats space-qualified address using options object`, async () => {
|
|
23
|
-
const sq = getSpaceQualifiedIbGibAddr({ spaceId: 'sp_alpha', ibGibAddr: 'item_a^gib123' });
|
|
24
|
-
iReckon(lc, sq).willEqual('v:1^spaceId:sp_alpha^item_a^gib123');
|
|
25
|
-
});
|
|
26
|
-
await ifWe(lc, `parses space-qualified address using options object`, async () => {
|
|
27
|
-
const parsed = parseSpaceQualifiedIbGibAddr({ spaceQualifiedAddr: 'v:1^spaceId:sp_alpha^item_a^gib123' });
|
|
28
|
-
iReckon(lc, parsed).isGonnaBeTruthy();
|
|
29
|
-
iReckon(lc, parsed.version).willEqual(1);
|
|
30
|
-
iReckon(lc, parsed.spaceId).willEqual('sp_alpha');
|
|
31
|
-
iReckon(lc, parsed.ibGibAddr).willEqual('item_a^gib123');
|
|
32
|
-
iReckon(lc, parsed.ib).willEqual('item_a');
|
|
33
|
-
iReckon(lc, parsed.gib).willEqual('gib123');
|
|
34
|
-
});
|
|
35
|
-
await ifWe(lc, `returns null for invalid space-qualified address string`, async () => {
|
|
36
|
-
const parsed = parseSpaceQualifiedIbGibAddr({ spaceQualifiedAddr: 'invalid_address_string' });
|
|
37
|
-
iReckon(lc, parsed).isGonnaBeFalsy();
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
await respecfully(lc, `Branch Space Lifecycle (getOrCreateBranchSpace)`, async () => {
|
|
41
|
-
await ifWe(lc, `creates a new dedicated branch space and retrieves existing space on second call`, async () => {
|
|
42
|
-
const testDir = path.join(process.cwd(), '.test_branch_space_repo');
|
|
43
|
-
try {
|
|
44
|
-
const { metaspace, vcsPath } = await bootstrapVcsMetaspace({
|
|
45
|
-
repoPath: testDir,
|
|
46
|
-
vcsFolderName: '.vcsgib_branch_test',
|
|
47
|
-
defaultSpaceName: 'test_space',
|
|
48
|
-
});
|
|
49
|
-
const branchName = 'feature_alpha';
|
|
50
|
-
const result1 = await getOrCreateBranchSpace({
|
|
51
|
-
metaspace,
|
|
52
|
-
vcsPath,
|
|
53
|
-
branchName,
|
|
54
|
-
});
|
|
55
|
-
iReckon(lc, result1.spaceName).willEqual('b2s_feature_alpha');
|
|
56
|
-
iReckon(lc, result1.spaceId).isGonnaBeTruthy();
|
|
57
|
-
iReckon(lc, result1.space).isGonnaBeTruthy();
|
|
58
|
-
const result2 = await getOrCreateBranchSpace({
|
|
59
|
-
metaspace,
|
|
60
|
-
vcsPath,
|
|
61
|
-
branchName,
|
|
62
|
-
});
|
|
63
|
-
iReckon(lc, result2.spaceName).willEqual('b2s_feature_alpha');
|
|
64
|
-
iReckon(lc, result2.spaceId).willEqual(result1.spaceId);
|
|
65
|
-
}
|
|
66
|
-
finally {
|
|
67
|
-
await fs.rm(testDir, { recursive: true, force: true });
|
|
68
|
-
}
|
|
69
|
-
});
|
|
70
|
-
});
|
|
71
|
-
await respecfully(lc, `Graph Population (populateBranchSpaceFromGraph)`, async () => {
|
|
72
|
-
await ifWe(lc, `populates target branch space with full dependency graph of root item`, async () => {
|
|
73
|
-
const testDir = path.join(process.cwd(), '.test_populate_graph_repo');
|
|
74
|
-
try {
|
|
75
|
-
const { metaspace, localSpace, vcsPath } = await bootstrapVcsMetaspace({
|
|
76
|
-
repoPath: testDir,
|
|
77
|
-
vcsFolderName: '.vcsgib_populate_test',
|
|
78
|
-
defaultSpaceName: 'test_space',
|
|
79
|
-
});
|
|
80
|
-
// Create child file item
|
|
81
|
-
const childRes = await Factory_V1.firstGen({
|
|
82
|
-
parentIbGib: ROOT,
|
|
83
|
-
ib: getB2tFSItemIb('file', 'file.txt', 'file_hash'),
|
|
84
|
-
data: {
|
|
85
|
-
name: 'file.txt',
|
|
86
|
-
nameHash: 'file_hash',
|
|
87
|
-
fsType: 'file',
|
|
88
|
-
diffTransactionId: 'tx_child',
|
|
89
|
-
},
|
|
90
|
-
});
|
|
91
|
-
const childItem = childRes.newIbGib;
|
|
92
|
-
const childAddr = getIbGibAddr({ ibGib: childItem });
|
|
93
|
-
await persistTransformResult({ resTransform: childRes, space: localSpace });
|
|
94
|
-
await metaspace.registerNewIbGib({ ibGib: childItem });
|
|
95
|
-
// Create root folder item referencing child
|
|
96
|
-
const rootRes = await Factory_V1.firstGen({
|
|
97
|
-
parentIbGib: ROOT,
|
|
98
|
-
ib: getB2tFSItemIb('folder', 'root', 'root_hash'),
|
|
99
|
-
data: {
|
|
100
|
-
name: 'root',
|
|
101
|
-
nameHash: 'root_hash',
|
|
102
|
-
fsType: 'folder',
|
|
103
|
-
diffTransactionId: 'tx_root',
|
|
104
|
-
},
|
|
105
|
-
rel8ns: {
|
|
106
|
-
b2tfs_item: [childAddr],
|
|
107
|
-
},
|
|
108
|
-
});
|
|
109
|
-
const rootItem = rootRes.newIbGib;
|
|
110
|
-
const rootAddr = getIbGibAddr({ ibGib: rootItem });
|
|
111
|
-
await persistTransformResult({ resTransform: rootRes, space: localSpace });
|
|
112
|
-
await metaspace.registerNewIbGib({ ibGib: rootItem });
|
|
113
|
-
// Create target branch space
|
|
114
|
-
const { space: targetBranchSpace } = await getOrCreateBranchSpace({
|
|
115
|
-
metaspace,
|
|
116
|
-
vcsPath,
|
|
117
|
-
branchName: 'main',
|
|
118
|
-
});
|
|
119
|
-
// Populate target branch space from source localSpace graph and create branch metadata node (SSM)
|
|
120
|
-
const popResult = await populateBranchSpaceFromGraph({
|
|
121
|
-
sourceSpace: localSpace,
|
|
122
|
-
targetBranchSpace,
|
|
123
|
-
rootItemIbGib: rootItem,
|
|
124
|
-
branchName: 'main',
|
|
125
|
-
metaspace,
|
|
126
|
-
});
|
|
127
|
-
iReckon(lc, popResult.syncedCount > 0).isGonnaBeTrue();
|
|
128
|
-
iReckon(lc, popResult.branchIbGib).isGonnaBeTruthy();
|
|
129
|
-
iReckon(lc, popResult.branchIbGib?.data?.name).willEqual('main');
|
|
130
|
-
iReckon(lc, popResult.branchIbGib?.rel8ns?.b2tfs_item).includes(rootAddr);
|
|
131
|
-
// Verify items exist in targetBranchSpace
|
|
132
|
-
const rootGet = await getFromSpace({ space: targetBranchSpace, addrs: [rootAddr] });
|
|
133
|
-
iReckon(lc, rootGet?.ibGibs?.length === 1).isGonnaBeTrue();
|
|
134
|
-
const childGet = await getFromSpace({ space: targetBranchSpace, addrs: [childAddr] });
|
|
135
|
-
iReckon(lc, childGet?.ibGibs?.length === 1).isGonnaBeTrue();
|
|
136
|
-
}
|
|
137
|
-
finally {
|
|
138
|
-
await fs.rm(testDir, { recursive: true, force: true });
|
|
139
|
-
}
|
|
140
|
-
});
|
|
141
|
-
});
|
|
142
|
-
});
|
|
143
|
-
//# sourceMappingURL=branch-space.respec.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"branch-space.respec.mjs","sourceRoot":"","sources":["../../../src/engine/branch/branch-space.respec.mts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"line-diff-helper.respec.d.mts","sourceRoot":"","sources":["../../../src/engine/diff/line-diff-helper.respec.mts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module line-diff-helper.respec
|
|
3
|
-
*
|
|
4
|
-
* Unit tests for native zero-dependency Myers / LCS line-diffing engine.
|
|
5
|
-
*/
|
|
6
|
-
import { respecfully, ifWe, iReckon } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
|
|
7
|
-
import { isBinaryBuffer, computeLineLcsDiff, getLineDiffChunks } from './line-diff-helper.mjs';
|
|
8
|
-
const lc = `[apps/vcs-gib/src/engine/diff/line-diff-helper.respec.node.mts]`;
|
|
9
|
-
const encoder = new TextEncoder();
|
|
10
|
-
await respecfully(lc, `Native Line Diff Engine (Zero-Dependency)`, async () => {
|
|
11
|
-
await respecfully(lc, `isBinaryBuffer`, async () => {
|
|
12
|
-
await ifWe(lc, `detects text buffer as non-binary`, async () => {
|
|
13
|
-
const buf = encoder.encode('Hello World\nLine 2');
|
|
14
|
-
iReckon(lc, isBinaryBuffer(buf)).isGonnaBeFalse();
|
|
15
|
-
});
|
|
16
|
-
await ifWe(lc, `detects null byte buffer as binary`, async () => {
|
|
17
|
-
const buf = new Uint8Array([0x48, 0x65, 0x00, 0x6c, 0x6f]);
|
|
18
|
-
iReckon(lc, isBinaryBuffer(buf)).isGonnaBeTrue();
|
|
19
|
-
});
|
|
20
|
-
});
|
|
21
|
-
await respecfully(lc, `computeLineLcsDiff`, async () => {
|
|
22
|
-
await ifWe(lc, `returns empty chunks for identical lines`, async () => {
|
|
23
|
-
const lines = ['line 1', 'line 2', 'line 3'];
|
|
24
|
-
const chunks = computeLineLcsDiff(lines, lines);
|
|
25
|
-
iReckon(lc, chunks.length).willEqual(0);
|
|
26
|
-
});
|
|
27
|
-
await ifWe(lc, `computes single line insertion chunk`, async () => {
|
|
28
|
-
const oldLines = ['line 1', 'line 3'];
|
|
29
|
-
const newLines = ['line 1', 'line 2', 'line 3'];
|
|
30
|
-
const chunks = computeLineLcsDiff(oldLines, newLines);
|
|
31
|
-
iReckon(lc, chunks.length).willEqual(1);
|
|
32
|
-
iReckon(lc, chunks[0].old_i).willEqual(1);
|
|
33
|
-
iReckon(lc, chunks[0].oldLines.length).willEqual(0);
|
|
34
|
-
iReckon(lc, chunks[0].newLines.length).willEqual(1);
|
|
35
|
-
iReckon(lc, chunks[0].newLines[0]).willEqual('line 2');
|
|
36
|
-
});
|
|
37
|
-
await ifWe(lc, `computes line replacement chunk`, async () => {
|
|
38
|
-
const oldLines = ['const x = 1;', 'const y = 2;'];
|
|
39
|
-
const newLines = ['const x = 1;', 'const y = 20;'];
|
|
40
|
-
const chunks = computeLineLcsDiff(oldLines, newLines);
|
|
41
|
-
iReckon(lc, chunks.length).willEqual(1);
|
|
42
|
-
iReckon(lc, chunks[0].old_i).willEqual(1);
|
|
43
|
-
iReckon(lc, chunks[0].oldLines[0]).willEqual('const y = 2;');
|
|
44
|
-
iReckon(lc, chunks[0].newLines[0]).willEqual('const y = 20;');
|
|
45
|
-
});
|
|
46
|
-
});
|
|
47
|
-
await respecfully(lc, `getLineDiffChunks`, async () => {
|
|
48
|
-
await ifWe(lc, `computes line diff for text buffers`, async () => {
|
|
49
|
-
const oldData = encoder.encode('alpha\nbeta\ngamma');
|
|
50
|
-
const newData = encoder.encode('alpha\nbeta_updated\ngamma');
|
|
51
|
-
const result = getLineDiffChunks({ oldData, newData });
|
|
52
|
-
iReckon(lc, result.treatedAsBinary).isGonnaBeUndefined();
|
|
53
|
-
iReckon(lc, result.chunks.length).willEqual(1);
|
|
54
|
-
iReckon(lc, result.chunks[0].oldLines[0]).willEqual('beta');
|
|
55
|
-
iReckon(lc, result.chunks[0].newLines[0]).willEqual('beta_updated');
|
|
56
|
-
});
|
|
57
|
-
await ifWe(lc, `flags binary data without force`, async () => {
|
|
58
|
-
const oldData = new Uint8Array([0x00, 0x01, 0x02]);
|
|
59
|
-
const newData = encoder.encode('hello');
|
|
60
|
-
const result = getLineDiffChunks({ oldData, newData });
|
|
61
|
-
iReckon(lc, result.treatedAsBinary).isGonnaBeTrue();
|
|
62
|
-
iReckon(lc, result.chunks.length).willEqual(0);
|
|
63
|
-
});
|
|
64
|
-
});
|
|
65
|
-
});
|
|
66
|
-
//# sourceMappingURL=line-diff-helper.respec.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"line-diff-helper.respec.mjs","sourceRoot":"","sources":["../../../src/engine/diff/line-diff-helper.respec.mts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"glob-helper.respec.d.mts","sourceRoot":"","sources":["../../../src/engine/filter/glob-helper.respec.mts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module glob-helper.respec
|
|
3
|
-
*
|
|
4
|
-
* Unit tests for native zero-dependency glob pattern matching engine.
|
|
5
|
-
*/
|
|
6
|
-
import { respecfully, ifWe, iReckon } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
|
|
7
|
-
import { globToRegExp, parseFilterFileContent, isPathFiltered } from './glob-helper.mjs';
|
|
8
|
-
const lc = `[apps/vcs-gib/src/engine/filter/glob-helper.respec.node.mts]`;
|
|
9
|
-
await respecfully(lc, `Native Glob Engine (Zero-Dependency)`, async () => {
|
|
10
|
-
await respecfully(lc, `parseFilterFileContent`, async () => {
|
|
11
|
-
await ifWe(lc, `parses filter file and strips comments & blank lines`, async () => {
|
|
12
|
-
const raw = `
|
|
13
|
-
# This is a comment
|
|
14
|
-
node_modules/
|
|
15
|
-
*.log
|
|
16
|
-
|
|
17
|
-
# Another comment
|
|
18
|
-
!important.log
|
|
19
|
-
`;
|
|
20
|
-
const patterns = parseFilterFileContent(raw);
|
|
21
|
-
iReckon(lc, patterns.length).willEqual(3);
|
|
22
|
-
iReckon(lc, patterns[0]).willEqual('node_modules/');
|
|
23
|
-
iReckon(lc, patterns[1]).willEqual('*.log');
|
|
24
|
-
iReckon(lc, patterns[2]).willEqual('!important.log');
|
|
25
|
-
});
|
|
26
|
-
});
|
|
27
|
-
await respecfully(lc, `globToRegExp`, async () => {
|
|
28
|
-
await ifWe(lc, `converts wildcard pattern to RegExp`, async () => {
|
|
29
|
-
const rx = globToRegExp('*.ts');
|
|
30
|
-
iReckon(lc, rx.test('index.ts')).isGonnaBeTrue();
|
|
31
|
-
iReckon(lc, rx.test('index.js')).isGonnaBeFalse();
|
|
32
|
-
});
|
|
33
|
-
await ifWe(lc, `handles recursive double asterisk **`, async () => {
|
|
34
|
-
const rx = globToRegExp('src/**/*.ts');
|
|
35
|
-
iReckon(lc, rx.test('src/index.ts')).isGonnaBeTrue();
|
|
36
|
-
iReckon(lc, rx.test('src/engine/item/item.ts')).isGonnaBeTrue();
|
|
37
|
-
iReckon(lc, rx.test('test/index.ts')).isGonnaBeFalse();
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
await respecfully(lc, `isPathFiltered`, async () => {
|
|
41
|
-
await ifWe(lc, `filters node_modules directory`, async () => {
|
|
42
|
-
const patterns = ['node_modules/', '*.log'];
|
|
43
|
-
iReckon(lc, isPathFiltered({
|
|
44
|
-
relativePath: 'node_modules',
|
|
45
|
-
isDirectory: true,
|
|
46
|
-
filterPatterns: patterns
|
|
47
|
-
})).isGonnaBeTrue();
|
|
48
|
-
iReckon(lc, isPathFiltered({
|
|
49
|
-
relativePath: 'src/node_modules/pkg',
|
|
50
|
-
isDirectory: true,
|
|
51
|
-
filterPatterns: patterns
|
|
52
|
-
})).isGonnaBeTrue();
|
|
53
|
-
});
|
|
54
|
-
await ifWe(lc, `honors negation rule ! prefix (last match wins)`, async () => {
|
|
55
|
-
const patterns = ['*.log', '!important.log'];
|
|
56
|
-
iReckon(lc, isPathFiltered({
|
|
57
|
-
relativePath: 'debug.log',
|
|
58
|
-
filterPatterns: patterns
|
|
59
|
-
})).isGonnaBeTrue();
|
|
60
|
-
iReckon(lc, isPathFiltered({
|
|
61
|
-
relativePath: 'important.log',
|
|
62
|
-
filterPatterns: patterns
|
|
63
|
-
})).isGonnaBeFalse();
|
|
64
|
-
});
|
|
65
|
-
await ifWe(lc, `handles JS regex pattern fallback`, async () => {
|
|
66
|
-
const patterns = ['regexp js ^test_.*\\.json$'];
|
|
67
|
-
iReckon(lc, isPathFiltered({
|
|
68
|
-
relativePath: 'test_data.json',
|
|
69
|
-
filterPatterns: patterns
|
|
70
|
-
})).isGonnaBeTrue();
|
|
71
|
-
iReckon(lc, isPathFiltered({
|
|
72
|
-
relativePath: 'prod_data.json',
|
|
73
|
-
filterPatterns: patterns
|
|
74
|
-
})).isGonnaBeFalse();
|
|
75
|
-
});
|
|
76
|
-
});
|
|
77
|
-
});
|
|
78
|
-
//# sourceMappingURL=glob-helper.respec.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"glob-helper.respec.mjs","sourceRoot":"","sources":["../../../src/engine/filter/glob-helper.respec.mts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"item.respec.d.mts","sourceRoot":"","sources":["../../../src/engine/item/item.respec.mts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|