diff --git a/__tests__/summary.test.ts b/__tests__/summary.test.ts
index 8704190..110ba0f 100644
--- a/__tests__/summary.test.ts
+++ b/__tests__/summary.test.ts
@@ -1,5 +1,5 @@
import {expect, jest, test} from '@jest/globals'
-import {Changes, ConfigurationOptions, Scorecard} from '../src/schemas'
+import {Change, Changes, ConfigurationOptions, Scorecard} from '../src/schemas'
import * as summary from '../src/summary'
import * as core from '@actions/core'
import {createTestChange} from './fixtures/create-test-change'
@@ -109,6 +109,38 @@ test('prints headline as h1', () => {
expect(text).toContain('
Dependency Review
')
})
+test('returns minimal summary in case the core.summary is too large for a PR comment', () => {
+ let changes: Changes = [
+ createTestChange({name: 'lodash', version: '1.2.3'}),
+ createTestChange({name: 'colors', version: '2.3.4'}),
+ createTestChange({name: '@foo/bar', version: '*'}),
+ ]
+
+ let minSummary: string = summary.addSummaryToSummary(
+ changes,
+ emptyInvalidLicenseChanges,
+ emptyChanges,
+ scorecard,
+ defaultConfig
+ )
+
+ // side effect DR report into core.summary as happens in main.ts
+ summary.addScannedDependencies(changes)
+ const text = core.summary.stringify()
+
+ expect(text).toContain('Dependency Review
')
+ expect(minSummary).toContain('# Dependency Review')
+
+ expect(text).toContain('lodash')
+ expect(text).toContain('colors')
+ expect(text).toContain('@foo/bar')
+ expect(minSummary).not.toContain('lodash')
+ expect(minSummary).not.toContain('colors')
+ expect(minSummary).not.toContain('@foo/bar')
+
+ expect(text.length).toBeGreaterThan(minSummary.length)
+})
+
test('only includes "No vulnerabilities or license issues found"-message if both are configured and nothing was found', () => {
summary.addSummaryToSummary(
emptyChanges,
diff --git a/src/summary.ts b/src/summary.ts
index 02e3d26..f9545bc 100644
--- a/src/summary.ts
+++ b/src/summary.ts
@@ -10,9 +10,9 @@ const icons = {
warning: '⚠️'
}
-// generates the initial DR summmary and applies to the Action's core.summary
-// returns a string array of all the formatted values in the event we need
-// to replace them in the PR comment due to length restrictions
+// generates the DR report summmary and caches it to the Action's core.summary.
+// returns the DR summary string, ready to be posted as a PR comment if the
+// final DR report is too large
export function addSummaryToSummary(
vulnerableChanges: Changes,
invalidLicenseChanges: InvalidLicenseChanges,