mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-01 13:47:06 +01:00
632ae0b7c3
* Prevent new JS files in shared folder * migrate to typescript * fix types * cleanup
162 lines
4.4 KiB
TypeScript
162 lines
4.4 KiB
TypeScript
import {
|
|
filterDiffLineAdditions,
|
|
hasNumberOfCodeBlocksIncreased,
|
|
filterDiffByFilePath,
|
|
filterDiffFileCreations,
|
|
} from './shared';
|
|
import { generateCreateFileDiff, generateModifyFilesDiff } from './test-data';
|
|
|
|
describe('filterDiffLineAdditions()', (): void => {
|
|
it('should return code additions in the diff', (): void => {
|
|
const testFilePath = 'new-file.js';
|
|
const testAddition = 'foo';
|
|
const testFileDiff = generateCreateFileDiff(testFilePath, testAddition);
|
|
|
|
const actualResult = filterDiffLineAdditions(testFileDiff);
|
|
const expectedResult = `+${testAddition}`;
|
|
|
|
expect(actualResult).toStrictEqual(expectedResult);
|
|
});
|
|
});
|
|
|
|
describe('filterDiffFileCreations()', (): void => {
|
|
it('should return code additions in the diff', (): void => {
|
|
const testFileDiff = [
|
|
generateModifyFilesDiff('new-file.ts', 'foo', 'bar'),
|
|
generateCreateFileDiff('old-file.js', 'ping'),
|
|
generateModifyFilesDiff('old-file.jsx', 'yin', 'yang'),
|
|
].join('');
|
|
|
|
const actualResult = filterDiffFileCreations(testFileDiff);
|
|
|
|
expect(actualResult).toMatchInlineSnapshot(`
|
|
"diff --git a/old-file.js b/old-file.js
|
|
new file mode 100644
|
|
index 000000000..30d74d258
|
|
--- /dev/null
|
|
+++ b/old-file.js
|
|
@@ -0,0 +1 @@
|
|
+ping"
|
|
`);
|
|
});
|
|
});
|
|
|
|
describe('hasNumberOfCodeBlocksIncreased()', (): void => {
|
|
it('should show which code blocks have increased', (): void => {
|
|
const testDiffFragment = `
|
|
+foo
|
|
+bar
|
|
+baz`;
|
|
const testCodeBlocks = ['code block 1', 'foo', 'baz'];
|
|
|
|
const actualResult = hasNumberOfCodeBlocksIncreased(
|
|
testDiffFragment,
|
|
testCodeBlocks,
|
|
);
|
|
const expectedResult = { 'code block 1': false, foo: true, baz: true };
|
|
|
|
expect(actualResult).toStrictEqual(expectedResult);
|
|
});
|
|
});
|
|
|
|
describe('filterDiffByFilePath()', (): void => {
|
|
const testFileDiff = [
|
|
generateModifyFilesDiff('new-file.ts', 'foo', 'bar'),
|
|
generateModifyFilesDiff('old-file.js', 'ping', 'pong'),
|
|
generateModifyFilesDiff('old-file.jsx', 'yin', 'yang'),
|
|
].join('');
|
|
|
|
it('should return the right diff for a generic matcher', (): void => {
|
|
const actualResult = filterDiffByFilePath(
|
|
testFileDiff,
|
|
'.*/.*.(js|ts)$|.*.(js|ts)$',
|
|
);
|
|
|
|
expect(actualResult).toMatchInlineSnapshot(`
|
|
"diff --git a/new-file.ts b/new-file.ts
|
|
index 57d5de75c..808d8ba37 100644
|
|
--- a/new-file.ts
|
|
+++ b/new-file.ts
|
|
@@ -1,3 +1,8 @@
|
|
+foo
|
|
@@ -34,33 +39,4 @@
|
|
-bar
|
|
diff --git a/old-file.js b/old-file.js
|
|
index 57d5de75c..808d8ba37 100644
|
|
--- a/old-file.js
|
|
+++ b/old-file.js
|
|
@@ -1,3 +1,8 @@
|
|
+ping
|
|
@@ -34,33 +39,4 @@
|
|
-pong"
|
|
`);
|
|
});
|
|
|
|
it('should return the right diff for a specific file in any dir matcher', (): void => {
|
|
const actualResult = filterDiffByFilePath(testFileDiff, '.*old-file.js$');
|
|
|
|
expect(actualResult).toMatchInlineSnapshot(`
|
|
"diff --git a/old-file.js b/old-file.js
|
|
index 57d5de75c..808d8ba37 100644
|
|
--- a/old-file.js
|
|
+++ b/old-file.js
|
|
@@ -1,3 +1,8 @@
|
|
+ping
|
|
@@ -34,33 +39,4 @@
|
|
-pong"
|
|
`);
|
|
});
|
|
|
|
it('should return the right diff for a multiple file extension (OR) matcher', (): void => {
|
|
const actualResult = filterDiffByFilePath(
|
|
testFileDiff,
|
|
'^(./)*old-file.(js|ts|jsx)$',
|
|
);
|
|
|
|
expect(actualResult).toMatchInlineSnapshot(`
|
|
"diff --git a/old-file.js b/old-file.js
|
|
index 57d5de75c..808d8ba37 100644
|
|
--- a/old-file.js
|
|
+++ b/old-file.js
|
|
@@ -1,3 +1,8 @@
|
|
+ping
|
|
@@ -34,33 +39,4 @@
|
|
-pong
|
|
diff --git a/old-file.jsx b/old-file.jsx
|
|
index 57d5de75c..808d8ba37 100644
|
|
--- a/old-file.jsx
|
|
+++ b/old-file.jsx
|
|
@@ -1,3 +1,8 @@
|
|
+yin
|
|
@@ -34,33 +39,4 @@
|
|
-yang"
|
|
`);
|
|
});
|
|
|
|
it('should return the right diff for a file name negation matcher', (): void => {
|
|
const actualResult = filterDiffByFilePath(
|
|
testFileDiff,
|
|
'^(?!.*old-file.js$).*.[a-zA-Z]+$',
|
|
);
|
|
|
|
expect(actualResult).toMatchInlineSnapshot(`
|
|
"diff --git a/new-file.ts b/new-file.ts
|
|
index 57d5de75c..808d8ba37 100644
|
|
--- a/new-file.ts
|
|
+++ b/new-file.ts
|
|
@@ -1,3 +1,8 @@
|
|
+foo
|
|
@@ -34,33 +39,4 @@
|
|
-bar
|
|
diff --git a/old-file.jsx b/old-file.jsx
|
|
index 57d5de75c..808d8ba37 100644
|
|
--- a/old-file.jsx
|
|
+++ b/old-file.jsx
|
|
@@ -1,3 +1,8 @@
|
|
+yin
|
|
@@ -34,33 +39,4 @@
|
|
-yang"
|
|
`);
|
|
});
|
|
});
|