Skip to content

Commit 3a1bda0

Browse files
Copilotalexr00
andcommitted
Add test for file change additions/deletions
Co-authored-by: alexr00 <38270282+alexr00@users.noreply.github.com>
1 parent fb68b7d commit 3a1bda0

File tree

1 file changed

+77
-0
lines changed

1 file changed

+77
-0
lines changed

src/test/common/fileChange.test.ts

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
/*---------------------------------------------------------------------------------------------
2+
* Copyright (c) Microsoft Corporation. All rights reserved.
3+
* Licensed under the MIT License. See License.txt in the project root for license information.
4+
*--------------------------------------------------------------------------------------------*/
5+
6+
import { default as assert } from 'assert';
7+
import { InMemFileChange, SlimFileChange, GitChangeType } from '../../common/file';
8+
9+
describe('File Change with additions/deletions', () => {
10+
it('InMemFileChange should store additions and deletions', () => {
11+
const fileChange = new InMemFileChange(
12+
'base-commit-sha',
13+
GitChangeType.MODIFY,
14+
'test-file.ts',
15+
undefined,
16+
'@@ -1,1 +1,1 @@\n-old\n+new',
17+
undefined,
18+
'https://blob-url',
19+
10,
20+
5
21+
);
22+
23+
assert.strictEqual(fileChange.additions, 10);
24+
assert.strictEqual(fileChange.deletions, 5);
25+
assert.strictEqual(fileChange.fileName, 'test-file.ts');
26+
assert.strictEqual(fileChange.status, GitChangeType.MODIFY);
27+
});
28+
29+
it('InMemFileChange should handle undefined additions/deletions', () => {
30+
const fileChange = new InMemFileChange(
31+
'base-commit-sha',
32+
GitChangeType.ADD,
33+
'new-file.ts',
34+
undefined,
35+
'',
36+
undefined,
37+
'https://blob-url',
38+
undefined,
39+
undefined
40+
);
41+
42+
assert.strictEqual(fileChange.additions, undefined);
43+
assert.strictEqual(fileChange.deletions, undefined);
44+
});
45+
46+
it('SlimFileChange should store additions and deletions', () => {
47+
const fileChange = new SlimFileChange(
48+
'base-commit-sha',
49+
'https://blob-url',
50+
GitChangeType.MODIFY,
51+
'slim-file.ts',
52+
undefined,
53+
20,
54+
15
55+
);
56+
57+
assert.strictEqual(fileChange.additions, 20);
58+
assert.strictEqual(fileChange.deletions, 15);
59+
assert.strictEqual(fileChange.fileName, 'slim-file.ts');
60+
assert.strictEqual(fileChange.status, GitChangeType.MODIFY);
61+
});
62+
63+
it('SlimFileChange should handle undefined additions/deletions', () => {
64+
const fileChange = new SlimFileChange(
65+
'base-commit-sha',
66+
'https://blob-url',
67+
GitChangeType.DELETE,
68+
'deleted-file.ts',
69+
undefined,
70+
undefined,
71+
undefined
72+
);
73+
74+
assert.strictEqual(fileChange.additions, undefined);
75+
assert.strictEqual(fileChange.deletions, undefined);
76+
});
77+
});

0 commit comments

Comments
 (0)