Skip to content

Commit 73d72cb

Browse files
authored
test(report): keep output formats aligned across folds
1 parent a164eb5 commit 73d72cb

1 file changed

Lines changed: 59 additions & 9 deletions

File tree

‎src/commands/scan/output-scan-report-text.test.mts‎

Lines changed: 59 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -209,8 +209,13 @@ describe('toPlainTextReport', () => {
209209
expect(text).toContain('package-199999')
210210
})
211211

212-
it('keeps package versions accurate across fold modes', () => {
213-
const leaf = alert('error', 'envVars', 'package.json', '')
212+
it('keeps report fields aligned across formats and fold modes', () => {
213+
const leaf = alert(
214+
'error',
215+
'envVars',
216+
'package.json',
217+
'https://socket.dev/npm/package/demo-transitive',
218+
)
214219
const versionFoldAlerts: ScanReport['alerts'] = new Map([
215220
['npm', new Map([['demo-transitive', new Map([['2.3.4', leaf]])]])],
216221
])
@@ -227,7 +232,12 @@ describe('toPlainTextReport', () => {
227232
['package.json', leaf],
228233
[
229234
'src/index.js',
230-
alert('warn', 'telemetry', 'package-lock.json', ''),
235+
alert(
236+
'warn',
237+
'telemetry',
238+
'package-lock.json',
239+
'https://socket.dev/npm/package/demo-transitive',
240+
),
231241
],
232242
]),
233243
],
@@ -247,7 +257,15 @@ describe('toPlainTextReport', () => {
247257
'demo-transitive',
248258
new Map([
249259
['2.3.4', leaf],
250-
['2.3.5', alert('warn', 'telemetry', 'package.json', '')],
260+
[
261+
'2.3.5',
262+
alert(
263+
'warn',
264+
'telemetry',
265+
'package.json',
266+
'https://socket.dev/npm/package/demo-transitive',
267+
),
268+
],
251269
]),
252270
],
253271
]),
@@ -268,6 +286,11 @@ describe('toPlainTextReport', () => {
268286
fold: FOLD_SETTING_PKG,
269287
healthy: false,
270288
})
289+
const defaultFoldReport = buildReport({ alerts: buildAlerts() })
290+
const twoVersionReport = buildReport({
291+
alerts: twoVersionAlerts,
292+
fold: 'version',
293+
})
271294

272295
expect(flattenReportAlerts(versionFoldReport)[0]?.packageVersion).toBe(
273296
'2.3.4',
@@ -291,11 +314,38 @@ describe('toPlainTextReport', () => {
291314
'<unknown>',
292315
)
293316
expect(toPlainTextReport(packageFoldReport)).toContain('<unknown>')
294-
expect(
295-
flattenReportAlerts(
296-
buildReport({ alerts: twoVersionAlerts, fold: 'version' }),
297-
).map(row => row.packageVersion),
298-
).toEqual(['2.3.4', '2.3.5'])
317+
expect(flattenReportAlerts(twoVersionReport).map(row => row.packageVersion))
318+
.toEqual(['2.3.4', '2.3.5'])
319+
const reports = [
320+
defaultFoldReport,
321+
versionFoldReport,
322+
fileFoldReport,
323+
packageFoldReport,
324+
twoVersionReport,
325+
]
326+
327+
for (const report of reports) {
328+
const rows = flattenReportAlerts(report)
329+
const text = toPlainTextReport(report)
330+
const markdown = toMarkdownReport(report)
331+
const markdownHeader = markdown
332+
.split('\n')
333+
.find(line => line.includes('| Policy |'))
334+
335+
expect(text).toContain('VERSION')
336+
expect(markdownHeader).toContain('Version')
337+
expect(markdownHeader).toContain('URL')
338+
for (const row of rows) {
339+
expect(text).toContain(row.packageVersion)
340+
expect(markdown).toContain(row.packageVersion)
341+
expect(text).toContain(row.manifest)
342+
expect(markdown).toContain(row.manifest)
343+
if (row.url) {
344+
expect(text).toContain(row.url)
345+
expect(markdown).toContain(row.url)
346+
}
347+
}
348+
}
299349
})
300350
})
301351

0 commit comments

Comments
 (0)