Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/frontend/diffs/components/diff_row_spec.js')
-rw-r--r--spec/frontend/diffs/components/diff_row_spec.js33
1 files changed, 33 insertions, 0 deletions
diff --git a/spec/frontend/diffs/components/diff_row_spec.js b/spec/frontend/diffs/components/diff_row_spec.js
index c0c92908701..4c5ce429c9d 100644
--- a/spec/frontend/diffs/components/diff_row_spec.js
+++ b/spec/frontend/diffs/components/diff_row_spec.js
@@ -277,3 +277,36 @@ describe('DiffRow', () => {
});
});
});
+
+describe('coverage state memoization', () => {
+ it('updates when coverage is loaded', () => {
+ const lineWithoutCoverage = {};
+ const lineWithCoverage = {
+ text: 'Test coverage: 5 hits',
+ class: 'coverage',
+ };
+
+ const unchangedProps = {
+ inline: true,
+ filePath: 'file/path',
+ line: { left: { new_line: 3 } },
+ };
+
+ const noCoverageProps = {
+ fileLineCoverage: () => lineWithoutCoverage,
+ coverageLoaded: false,
+ ...unchangedProps,
+ };
+ const coverageProps = {
+ fileLineCoverage: () => lineWithCoverage,
+ coverageLoaded: true,
+ ...unchangedProps,
+ };
+
+ // this caches no coverage for the line
+ expect(DiffRow.coverageStateLeft(noCoverageProps)).toStrictEqual(lineWithoutCoverage);
+
+ // this retrieves coverage for the line because it has been recached
+ expect(DiffRow.coverageStateLeft(coverageProps)).toStrictEqual(lineWithCoverage);
+ });
+});