Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 0 additions & 8 deletions messages/rule-viewer.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,3 @@
# summary.found-no-rules

Found 0 rules.

# summary.found-rules

Found %d rule(s):

# summary.detail.header

%d. %s
Expand Down
11 changes: 7 additions & 4 deletions src/lib/viewers/RuleViewer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,17 @@ abstract class AbstractRuleDisplayer implements RuleViewer {
}

public view(rules: Rule[]): void {
if (rules.length === 0) {
this.display.displayLog(getMessage(BundleName.RuleViewer, 'summary.found-no-rules'));
} else {
this.display.displayLog(getMessage(BundleName.RuleViewer, 'summary.found-rules', [rules.length]));
this.displayLineSeparator();
if (rules.length > 0) {
this._view(rules);
this.displayLineSeparator();
}
}

protected displayLineSeparator(): void {
this.display.displayLog("");
}

protected abstract _view(rules: Rule[]): void;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
Found 1 rule(s):

=== 1. StubRule1
severity: 2 (High)
engine: FakeEngine1
type: Standard
tags: Recommended, Security
resources: www.google.com
description: This is the description for a stub rule. Blah blah blah.
description: This is the description for a stub rule. Blah blah blah.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Found 2 rule(s):

=== 1. StubRule1
severity: 2 (High)
engine: FakeEngine1
Expand All @@ -13,4 +13,4 @@ Found 2 rule(s):
type: Flow
tags: CodeStyle, Performance
resources: www.bing.com, www.salesforce.com
description: This is the description for a second stub rule. Blah blah blah.
description: This is the description for a second stub rule. Blah blah blah.
24 changes: 15 additions & 9 deletions test/lib/viewers/RuleViewer.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ const PATH_TO_COMPARISON_FILES = path.resolve(__dirname, '..', '..', '..', 'test

describe('RuleViewer implementations', () => {
describe('RuleDetailDisplayer', () => {
it('When given no rules, outputs summary and nothing else', () => {
it('When given no rules, outputs a line separator and nothing else', () => {
const display = new SpyDisplay();
const viewer = new RuleDetailDisplayer(display);

Expand All @@ -20,7 +20,7 @@ describe('RuleViewer implementations', () => {
expect(displayEvents).toHaveLength(1);
expect(displayEvents).toEqual([{
type: DisplayEventType.LOG,
data: 'Found 0 rules.'
data: ''
}]);
});

Expand All @@ -34,7 +34,7 @@ describe('RuleViewer implementations', () => {
]);

const actualDisplayEvents = display.getDisplayEvents();
expect(actualDisplayEvents).toHaveLength(2);
expect(actualDisplayEvents).toHaveLength(3);
for (const displayEvent of actualDisplayEvents) {
expect(displayEvent.type).toEqual(DisplayEventType.LOG);
}
Expand All @@ -57,7 +57,7 @@ describe('RuleViewer implementations', () => {
]);

const actualDisplayEvents = display.getDisplayEvents();
expect(actualDisplayEvents).toHaveLength(2);
expect(actualDisplayEvents).toHaveLength(3);
for (const displayEvent of actualDisplayEvents) {
expect(displayEvent.type).toEqual(DisplayEventType.LOG);
}
Expand All @@ -80,7 +80,7 @@ describe('RuleViewer implementations', () => {
expect(displayEvents).toHaveLength(1);
expect(displayEvents).toEqual([{
type: DisplayEventType.LOG,
data: 'Found 0 rules.'
data: ''
}]);
});

Expand All @@ -94,10 +94,10 @@ describe('RuleViewer implementations', () => {
]);

const displayEvents = display.getDisplayEvents();
expect(displayEvents).toHaveLength(2);
expect(displayEvents).toHaveLength(3);
expect(displayEvents).toEqual([{
type: DisplayEventType.LOG,
data: 'Found 1 rule(s):'
data: ''
}, {
type: DisplayEventType.TABLE,
data: JSON.stringify({
Expand All @@ -110,6 +110,9 @@ describe('RuleViewer implementations', () => {
tag: rule.getFormattedTags()
}]
})
}, {
type: DisplayEventType.LOG,
data: ''
}])
});

Expand All @@ -125,10 +128,10 @@ describe('RuleViewer implementations', () => {
]);

const displayEvents = display.getDisplayEvents();
expect(displayEvents).toHaveLength(2);
expect(displayEvents).toHaveLength(3);
expect(displayEvents).toEqual([{
type: DisplayEventType.LOG,
data: 'Found 2 rule(s):'
data: ''
}, {
type: DisplayEventType.TABLE,
data: JSON.stringify({
Expand All @@ -147,6 +150,9 @@ describe('RuleViewer implementations', () => {
tag: rule2.getFormattedTags()
}]
})
}, {
type: DisplayEventType.LOG,
data: ''
}]);
});
});
Expand Down