diff --git a/src/__tests__/file-list-renderer-tests.ts b/src/__tests__/file-list-renderer-tests.ts
index 4d16b62..67e4225 100644
--- a/src/__tests__/file-list-renderer-tests.ts
+++ b/src/__tests__/file-list-renderer-tests.ts
@@ -1,5 +1,6 @@
import { FileListRenderer } from '../file-list-renderer';
import HoganJsUtils from '../hoganjs-utils';
+import { ColorSchemeType } from '../types';
describe('FileListRenderer', () => {
describe('render', () => {
@@ -175,5 +176,97 @@ describe('FileListRenderer', () => {
"
`);
});
+
+ describe('with dark colorScheme', () => {
+ it('should work for all kinds of files', () => {
+ const hoganUtils = new HoganJsUtils({});
+ const fileListRenderer = new FileListRenderer(hoganUtils, {
+ colorScheme: ColorSchemeType.DARK,
+ });
+
+ const files = [
+ {
+ isCombined: false,
+ isGitDiff: false,
+ blocks: [],
+ addedLines: 12,
+ deletedLines: 41,
+ language: 'js',
+ oldName: 'my/file/name.js',
+ newName: 'my/file/name.js',
+ },
+ ];
+ const fileHtml = fileListRenderer.render(files);
+ expect(fileHtml).toMatchInlineSnapshot(`
+ "
"
+ `);
+ });
+ });
+
+ describe('with auto colorScheme', () => {
+ it('should work for all kinds of files', () => {
+ const hoganUtils = new HoganJsUtils({});
+ const fileListRenderer = new FileListRenderer(hoganUtils, {
+ colorScheme: ColorSchemeType.AUTO,
+ });
+
+ const files = [
+ {
+ isCombined: false,
+ isGitDiff: false,
+ blocks: [],
+ addedLines: 12,
+ deletedLines: 41,
+ language: 'js',
+ oldName: 'my/file/name.js',
+ newName: 'my/file/name.js',
+ },
+ ];
+ const fileHtml = fileListRenderer.render(files);
+ expect(fileHtml).toMatchInlineSnapshot(`
+ ""
+ `);
+ });
+ });
});
});
diff --git a/src/file-list-renderer.ts b/src/file-list-renderer.ts
index b560b28..b9e7d19 100644
--- a/src/file-list-renderer.ts
+++ b/src/file-list-renderer.ts
@@ -1,15 +1,25 @@
import * as renderUtils from './render-utils';
import HoganJsUtils from './hoganjs-utils';
-import { DiffFile } from './types';
+import { ColorSchemeType, DiffFile } from './types';
const baseTemplatesPath = 'file-summary';
const iconsBaseTemplatesPath = 'icon';
+export interface FileListRendererConfig {
+ colorScheme?: ColorSchemeType;
+}
+
+export const defaultFileListRendererConfig = {
+ colorScheme: ColorSchemeType.LIGHT,
+};
+
export class FileListRenderer {
private readonly hoganUtils: HoganJsUtils;
+ private readonly config: typeof defaultFileListRendererConfig;
- constructor(hoganUtils: HoganJsUtils) {
+ constructor(hoganUtils: HoganJsUtils, config: FileListRendererConfig = {}) {
this.hoganUtils = hoganUtils;
+ this.config = { ...defaultFileListRendererConfig, ...config };
}
render(diffFiles: DiffFile[]): string {
@@ -34,6 +44,7 @@ export class FileListRenderer {
.join('\n');
return this.hoganUtils.render(baseTemplatesPath, 'wrapper', {
+ colorScheme: renderUtils.colorSchemeToCss(this.config.colorScheme),
filesNumber: diffFiles.length,
files: files,
});
diff --git a/src/templates/file-summary-wrapper.mustache b/src/templates/file-summary-wrapper.mustache
index 126854c..600f4a3 100644
--- a/src/templates/file-summary-wrapper.mustache
+++ b/src/templates/file-summary-wrapper.mustache
@@ -1,4 +1,4 @@
-