From d665fab9d19004164d937958a398161580be58d4 Mon Sep 17 00:00:00 2001 From: Christopher Bisom Date: Tue, 16 Jul 2024 15:43:07 -0400 Subject: [PATCH 01/11] 10323-story: try using non-breaking space to preserve tabs rather than preserveWhiteSpace --- web-client/src/views/CreateOrder/TextEditor.tsx | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/web-client/src/views/CreateOrder/TextEditor.tsx b/web-client/src/views/CreateOrder/TextEditor.tsx index ab823a52dc7..4e32fe5c8ed 100644 --- a/web-client/src/views/CreateOrder/TextEditor.tsx +++ b/web-client/src/views/CreateOrder/TextEditor.tsx @@ -19,6 +19,13 @@ const ReactQuill = React.lazy(async () => { return { default: reactQuill }; }); +// reactQuill removes tabs around HTML tags. This function is a workaround +// using zero-width spaces to force reactQuill to maintain tabs. +// See https://github.com/slab/quill/issues/3580. +const formatTextToMaintainTabs = (text: string) => { + return text.replace('\t', '\t​'); +}; + export const TextEditor = ({ defaultValue, editorDelta, @@ -26,6 +33,8 @@ export const TextEditor = ({ updateScreenMetadataSequence, }) => { const quillEscapeRef = useRef(null); + console.log('defaultValue', defaultValue); + defaultValue = formatTextToMaintainTabs(defaultValue); const onKeyboard = event => { const pressedESC = event.keyCode === 27; @@ -81,6 +90,7 @@ export const TextEditor = ({ onChange={(content, delta, source, editor) => { const fullDelta = editor.getContents(); const documentContents = editor.getText(); + console.log('TextEditor documentContents', documentContents); const converter = new QuillDeltaToHtmlConverter(fullDelta.ops, { inlineStyles: { size: inlineStylesFontSizes, From 88524a217f6f28c03be5330f88dca9be90d7683d Mon Sep 17 00:00:00 2001 From: Christopher Bisom Date: Tue, 16 Jul 2024 16:17:20 -0400 Subject: [PATCH 02/11] 10323-story: avoid .replace when text not present --- web-client/src/views/CreateOrder/TextEditor.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web-client/src/views/CreateOrder/TextEditor.tsx b/web-client/src/views/CreateOrder/TextEditor.tsx index 4e32fe5c8ed..e685c7052d1 100644 --- a/web-client/src/views/CreateOrder/TextEditor.tsx +++ b/web-client/src/views/CreateOrder/TextEditor.tsx @@ -23,7 +23,7 @@ const ReactQuill = React.lazy(async () => { // using zero-width spaces to force reactQuill to maintain tabs. // See https://github.com/slab/quill/issues/3580. const formatTextToMaintainTabs = (text: string) => { - return text.replace('\t', '\t​'); + return text ? text.replace('\t', '\t​') : text; }; export const TextEditor = ({ From abcb489285dad7ea8188f526e6b20aa132b1d06a Mon Sep 17 00:00:00 2001 From: Christopher Bisom Date: Wed, 17 Jul 2024 07:54:20 -0400 Subject: [PATCH 03/11] 10323-story: ensure the change only affects the initial paragraph line, and prevent adding multiple zero-width spaces --- .../src/views/CreateOrder/TextEditor.tsx | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/web-client/src/views/CreateOrder/TextEditor.tsx b/web-client/src/views/CreateOrder/TextEditor.tsx index e685c7052d1..068a16406b5 100644 --- a/web-client/src/views/CreateOrder/TextEditor.tsx +++ b/web-client/src/views/CreateOrder/TextEditor.tsx @@ -19,11 +19,18 @@ const ReactQuill = React.lazy(async () => { return { default: reactQuill }; }); -// reactQuill removes tabs around HTML tags. This function is a workaround -// using zero-width spaces to force reactQuill to maintain tabs. -// See https://github.com/slab/quill/issues/3580. -const formatTextToMaintainTabs = (text: string) => { - return text ? text.replace('\t', '\t​') : text; +// reactQuill removes tabs around HTML tags. This function is a +// very imperfect workaround using a zero-width space to force reactQuill +// to maintain any initial tab. See https://github.com/slab/quill/issues/3580. +const formatTextToMaintainInitialTab = (text: string) => { + if (text) { + // This will render an "invisible" space at the beginning of an initial tabbed line, + // which is not ideal, but which is better than not rendering the tab. + // eslint-disable-next-line no-control-regex + text = text.replace(/^

(?​\t'); + } + console.log('defaultValue after applying', text); + return text; }; export const TextEditor = ({ @@ -34,7 +41,7 @@ export const TextEditor = ({ }) => { const quillEscapeRef = useRef(null); console.log('defaultValue', defaultValue); - defaultValue = formatTextToMaintainTabs(defaultValue); + defaultValue = formatTextToMaintainInitialTab(defaultValue); const onKeyboard = event => { const pressedESC = event.keyCode === 27; From 871f87c01e5ca897afb3049be1f10abb3a41d120 Mon Sep 17 00:00:00 2001 From: Christopher Bisom Date: Tue, 30 Jul 2024 11:07:20 -0400 Subject: [PATCH 04/11] 10323-story: try to use white-space: pre-wrap !important; in TextEditor.tsx --- .../src/views/CreateOrder/TextEditor.tsx | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/web-client/src/views/CreateOrder/TextEditor.tsx b/web-client/src/views/CreateOrder/TextEditor.tsx index 068a16406b5..59f1374564e 100644 --- a/web-client/src/views/CreateOrder/TextEditor.tsx +++ b/web-client/src/views/CreateOrder/TextEditor.tsx @@ -19,20 +19,6 @@ const ReactQuill = React.lazy(async () => { return { default: reactQuill }; }); -// reactQuill removes tabs around HTML tags. This function is a -// very imperfect workaround using a zero-width space to force reactQuill -// to maintain any initial tab. See https://github.com/slab/quill/issues/3580. -const formatTextToMaintainInitialTab = (text: string) => { - if (text) { - // This will render an "invisible" space at the beginning of an initial tabbed line, - // which is not ideal, but which is better than not rendering the tab. - // eslint-disable-next-line no-control-regex - text = text.replace(/^

(?​\t'); - } - console.log('defaultValue after applying', text); - return text; -}; - export const TextEditor = ({ defaultValue, editorDelta, @@ -41,7 +27,6 @@ export const TextEditor = ({ }) => { const quillEscapeRef = useRef(null); console.log('defaultValue', defaultValue); - defaultValue = formatTextToMaintainInitialTab(defaultValue); const onKeyboard = event => { const pressedESC = event.keyCode === 27; @@ -99,11 +84,15 @@ export const TextEditor = ({ const documentContents = editor.getText(); console.log('TextEditor documentContents', documentContents); const converter = new QuillDeltaToHtmlConverter(fullDelta.ops, { + customCssStyles: () => { + return 'white-space: pre-wrap !important;'; + }, inlineStyles: { size: inlineStylesFontSizes, }, }); const html = converter.convert(); + console.log('html', html); updateFormValueSequence({ key: 'richText', value: html, From 55db675015d729c9862729e1c1018562bc093a14 Mon Sep 17 00:00:00 2001 From: Christopher Bisom Date: Wed, 31 Jul 2024 18:00:48 -0400 Subject: [PATCH 05/11] remove console logs and add comment with TODO --- web-client/src/views/CreateOrder/TextEditor.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/web-client/src/views/CreateOrder/TextEditor.tsx b/web-client/src/views/CreateOrder/TextEditor.tsx index 59f1374564e..5caae9efb0c 100644 --- a/web-client/src/views/CreateOrder/TextEditor.tsx +++ b/web-client/src/views/CreateOrder/TextEditor.tsx @@ -26,7 +26,6 @@ export const TextEditor = ({ updateScreenMetadataSequence, }) => { const quillEscapeRef = useRef(null); - console.log('defaultValue', defaultValue); const onKeyboard = event => { const pressedESC = event.keyCode === 27; @@ -82,8 +81,10 @@ export const TextEditor = ({ onChange={(content, delta, source, editor) => { const fullDelta = editor.getContents(); const documentContents = editor.getText(); - console.log('TextEditor documentContents', documentContents); const converter = new QuillDeltaToHtmlConverter(fullDelta.ops, { + // We add custom CSS styles to maintain tabbing across save and reload. + // (Note that preserveWhitespace does not work: https://github.com/ustaxcourt/ef-cms/pull/1408.) + // TODO: preserve toolbar-generated indentation across save and reload. customCssStyles: () => { return 'white-space: pre-wrap !important;'; }, @@ -92,7 +93,6 @@ export const TextEditor = ({ }, }); const html = converter.convert(); - console.log('html', html); updateFormValueSequence({ key: 'richText', value: html, From ae86f647ed0782245597d2abc32adc8d859e5e2d Mon Sep 17 00:00:00 2001 From: Christopher Bisom Date: Fri, 2 Aug 2024 01:30:03 -0400 Subject: [PATCH 06/11] 10323-story: get tabs to render too --- .../src/views/CreateOrder/TextEditor.tsx | 32 +++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/web-client/src/views/CreateOrder/TextEditor.tsx b/web-client/src/views/CreateOrder/TextEditor.tsx index 5caae9efb0c..fadba621c45 100644 --- a/web-client/src/views/CreateOrder/TextEditor.tsx +++ b/web-client/src/views/CreateOrder/TextEditor.tsx @@ -1,6 +1,8 @@ /* eslint-disable react/prop-types */ import 'react-quill/dist/quill.snow.css'; +import { DomUtils, parseDocument } from 'htmlparser2'; import { QuillDeltaToHtmlConverter } from 'quill-delta-to-html'; +import { render as renderHtml } from 'dom-serializer'; import React, { Suspense, useEffect, useRef } from 'react'; import reactQuill from 'react-quill'; @@ -19,6 +21,32 @@ const ReactQuill = React.lazy(async () => { return { default: reactQuill }; }); +// Quill does two things to render indentations: +// 1) Adds padding-left so that the richText (and therefore the pdf) has indentations. +// 2) Adds custom ql-indent-{level} classes to display the indentation in the Quill editor itself. +// As part of the richText, 1 is automatically preserved across save and reload. +// As part of the client-side Quill text rendering, 2 is *not* preserved across save and reload, +// so even though the indentations are "there" in the richText, the user won't see them in the editor. +// We call addQuillIndentationClasses on loading the text into the editor in order to correct that. +const addQuillIndentationClasses = (html: string) => { + const dom = parseDocument(html); + // Traverse the DOM and add the appropriate ql-indent-{level} class corresponding to any elements with padding-left + DomUtils.findAll(elem => { + if (elem.name === 'p' && elem.attribs && elem.attribs.style) { + const { style } = elem.attribs; + const paddingLeftMatch = style.match(/padding-left:([0-9]+)em/); + if (paddingLeftMatch) { + const paddingLeftValue = parseInt(paddingLeftMatch[1]); + const indentLevel = paddingLeftValue / 3; + elem.attribs.class = `ql-indent-${indentLevel}`; + } + } + return true; + }, dom.children); + + return renderHtml(dom); +}; + export const TextEditor = ({ defaultValue, editorDelta, @@ -26,6 +54,7 @@ export const TextEditor = ({ updateScreenMetadataSequence, }) => { const quillEscapeRef = useRef(null); + defaultValue = addQuillIndentationClasses(defaultValue); const onKeyboard = event => { const pressedESC = event.keyCode === 27; @@ -84,9 +113,8 @@ export const TextEditor = ({ const converter = new QuillDeltaToHtmlConverter(fullDelta.ops, { // We add custom CSS styles to maintain tabbing across save and reload. // (Note that preserveWhitespace does not work: https://github.com/ustaxcourt/ef-cms/pull/1408.) - // TODO: preserve toolbar-generated indentation across save and reload. customCssStyles: () => { - return 'white-space: pre-wrap !important;'; + return 'white-space: pre-wrap !important'; }, inlineStyles: { size: inlineStylesFontSizes, From aef801c2fb201fb2265020239aaae22c66b29fbb Mon Sep 17 00:00:00 2001 From: Christopher Bisom Date: Wed, 7 Aug 2024 16:56:21 -0400 Subject: [PATCH 07/11] 10323-story: fix tab and indenting --- web-client/src/views/CreateOrder/TextEditor.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web-client/src/views/CreateOrder/TextEditor.tsx b/web-client/src/views/CreateOrder/TextEditor.tsx index fadba621c45..c45e73394ed 100644 --- a/web-client/src/views/CreateOrder/TextEditor.tsx +++ b/web-client/src/views/CreateOrder/TextEditor.tsx @@ -54,7 +54,7 @@ export const TextEditor = ({ updateScreenMetadataSequence, }) => { const quillEscapeRef = useRef(null); - defaultValue = addQuillIndentationClasses(defaultValue); + const defaultValueWithIndentation = addQuillIndentationClasses(defaultValue); const onKeyboard = event => { const pressedESC = event.keyCode === 27; @@ -80,7 +80,7 @@ export const TextEditor = ({ <> Loading...}> Date: Thu, 8 Aug 2024 17:27:59 -0400 Subject: [PATCH 08/11] 10433-design-debt: only show petition alert if the petitioner is associated with the case, plus very slight refactor --- .../computeds/caseDetailHelper.test.ts | 19 ++++++++- .../presenter/computeds/caseDetailHelper.ts | 41 +++++++++++-------- 2 files changed, 42 insertions(+), 18 deletions(-) diff --git a/web-client/src/presenter/computeds/caseDetailHelper.test.ts b/web-client/src/presenter/computeds/caseDetailHelper.test.ts index 96601e34e21..df07871d88f 100644 --- a/web-client/src/presenter/computeds/caseDetailHelper.test.ts +++ b/web-client/src/presenter/computeds/caseDetailHelper.test.ts @@ -449,7 +449,23 @@ describe('case detail computed', () => { expect(result.showPetitionProcessingAlert).toEqual(false); }); - it('should show petition processing alert if user is an external user and the case does not allow service', () => { + it('should not show petition processing alert if user is not associated with the case', () => { + const user = petitionerUser; + + const result = runCompute(caseDetailHelper, { + state: { + ...getBaseState(user), + caseDetail: { + docketEntries: [{ documentType: 'Petition' }], + screenMetadata: { isAssociated: false }, + status: CASE_STATUS_TYPES.generalDocket, + }, + }, + }); + expect(result.showPetitionProcessingAlert).toEqual(false); + }); + + it('should show petition processing alert if user is an external user and the case does not allow service and user is associated with the case', () => { const user = petitionerUser; const result = runCompute(caseDetailHelper, { @@ -459,6 +475,7 @@ describe('case detail computed', () => { docketEntries: [{ documentType: 'Petition' }], status: CASE_STATUS_TYPES.new, }, + screenMetadata: { isAssociated: true }, }, }); expect(result.showPetitionProcessingAlert).toEqual(true); diff --git a/web-client/src/presenter/computeds/caseDetailHelper.ts b/web-client/src/presenter/computeds/caseDetailHelper.ts index 4e4cfc20560..e346e605a02 100644 --- a/web-client/src/presenter/computeds/caseDetailHelper.ts +++ b/web-client/src/presenter/computeds/caseDetailHelper.ts @@ -21,8 +21,7 @@ export const caseDetailHelper = ( const isExternalUser = applicationContext .getUtilities() .isExternalUser(user.role); - const userAssociatedWithCase = get(state.screenMetadata.isAssociated); - const showJudgesNotes = permissions.JUDGES_NOTES; + const userIsAssociatedWithCase = get(state.screenMetadata.isAssociated); let showFileDocumentButton = permissions.FILE_EXTERNAL_DOCUMENT && ['CaseDetail'].includes(currentPage); @@ -34,7 +33,7 @@ export const caseDetailHelper = ( let showQcWorkItemsUntouchedState = false; if (isExternalUser) { - if (userAssociatedWithCase) { + if (userIsAssociatedWithCase) { userHasAccessToCase = true; showFileDocumentButton = true; @@ -71,22 +70,34 @@ export const caseDetailHelper = ( .getUtilities() .isSealedCase(caseDetail); - const userCanViewCase = - (isExternalUser && userAssociatedWithCase) || !isSealedCase; + const showConsolidatedCasesCard = + permissions.VIEW_CONSOLIDATED_CASES_CARD && !!caseDetail.leadDocketNumber; + + const showFilingFeeExternal = + isExternalUser && + user.role !== USER_ROLES.irsPractitioner && + user.role !== USER_ROLES.irsSuperuser; + + const showJudgesNotes = permissions.JUDGES_NOTES; + + const showPetitionProcessingAlert = + isExternalUser && + !canAllowDocumentServiceForCase && + userIsAssociatedWithCase; + + const showPractitionerSection = !isExternalUser || hasPrivatePractitioners; const isPractitioner = user.role === USER_ROLES.irsPractitioner || user.role === USER_ROLES.privatePractitioner; - const isPetitioner = user.role === USER_ROLES.petitioner; - const showSealedCaseView = (isPractitioner || isPetitioner) && !!isSealedCase && - !userAssociatedWithCase; + !userIsAssociatedWithCase; - const showConsolidatedCasesCard = - permissions.VIEW_CONSOLIDATED_CASES_CARD && !!caseDetail.leadDocketNumber; + const userCanViewCase = + (isExternalUser && userIsAssociatedWithCase) || !isSealedCase; return { caseDeadlines, @@ -105,14 +116,10 @@ export const caseDetailHelper = ( showDocketRecordInProgressState: !isExternalUser, showEditCaseDetailsButton: permissions.EDIT_CASE_DETAILS, showFileDocumentButton, - showFilingFeeExternal: - isExternalUser && - user.role !== USER_ROLES.irsPractitioner && - user.role !== USER_ROLES.irsSuperuser, + showFilingFeeExternal, showJudgesNotes, - showPetitionProcessingAlert: - isExternalUser && !canAllowDocumentServiceForCase, - showPractitionerSection: !isExternalUser || hasPrivatePractitioners, + showPetitionProcessingAlert, + showPractitionerSection, showPreferredTrialCity: caseDetail.preferredTrialCity, showQcWorkItemsUntouchedState, showSealedCaseView, From 97ccedb3e91d3bfc2894a359277ec6f91d05c253 Mon Sep 17 00:00:00 2001 From: Christopher Bisom Date: Sat, 10 Aug 2024 10:43:12 -0400 Subject: [PATCH 09/11] 10458-devex: fix favicon pattern matching --- esbuildHelper.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/esbuildHelper.mjs b/esbuildHelper.mjs index c2801a5d02b..ef12402b670 100644 --- a/esbuildHelper.mjs +++ b/esbuildHelper.mjs @@ -136,7 +136,7 @@ export default async function ({ copy({ assets: [ { - from: ['web-client/src/favicons'], + from: ['web-client/src/favicons/**/*'], keepStructure: true, to: ['.'], }, From 615a2cafa8f2e16a94723ebb8cb4f51434bcf682 Mon Sep 17 00:00:00 2001 From: Nate Elliott Date: Tue, 13 Aug 2024 14:43:51 -0500 Subject: [PATCH 10/11] Expand untouched file check to check ALL files for increased type error count --- ...eck.yml => typescript-all-files-check.yml} | 4 +- ...s.ts => checkAllFilesForTypeErrorCount.ts} | 52 +------------------ 2 files changed, 3 insertions(+), 53 deletions(-) rename .github/workflows/{typescript-untouched-files-check.yml => typescript-all-files-check.yml} (91%) rename scripts/{checkUntouchedFiles.ts => checkAllFilesForTypeErrorCount.ts} (67%) diff --git a/.github/workflows/typescript-untouched-files-check.yml b/.github/workflows/typescript-all-files-check.yml similarity index 91% rename from .github/workflows/typescript-untouched-files-check.yml rename to .github/workflows/typescript-all-files-check.yml index 17c080c2f21..8e20b67d122 100644 --- a/.github/workflows/typescript-untouched-files-check.yml +++ b/.github/workflows/typescript-all-files-check.yml @@ -1,4 +1,4 @@ -name: Typescript Untouched File Check +name: Typescript File Check on: pull_request: @@ -40,4 +40,4 @@ jobs: run: npm ci - name: Check untouched files - run: npx ts-node scripts/checkUntouchedFiles.ts + run: npx ts-node scripts/checkAllFilesForTypeErrorCount.ts diff --git a/scripts/checkUntouchedFiles.ts b/scripts/checkAllFilesForTypeErrorCount.ts similarity index 67% rename from scripts/checkUntouchedFiles.ts rename to scripts/checkAllFilesForTypeErrorCount.ts index a88cce7945d..994841d777f 100644 --- a/scripts/checkUntouchedFiles.ts +++ b/scripts/checkAllFilesForTypeErrorCount.ts @@ -1,4 +1,4 @@ -import { execSync, spawnSync } from 'child_process'; +import { spawnSync } from 'child_process'; function runTypescriptCommand(cwd: string): { stdout: string } { return spawnSync( @@ -34,56 +34,9 @@ function getTypescriptErrorMap(cwd: string): { [fileName: string]: number } { return createTypescriptErrorMap(stdout); } -function getHashForDirectory(cwd: string) { - return spawnSync('git', ['log', '-n', '1', '--pretty=format:"%H"'], { - cwd, - encoding: 'utf-8', - }).stdout; -} - -function getDifferencesBetweenHashes( - branchDirPath: string, - currentBranchHash: string, - targetBranchHash: string, -): { [fileName: string]: boolean } { - return execSync( - `git diff --name-only ${currentBranchHash} ${targetBranchHash}`, - { - cwd: branchDirPath, - encoding: 'utf-8', - }, - ) - .split('\n') - .map(line => line.trim()) - .reduce( - (accumulator, fileName) => { - accumulator[fileName] = true; - return accumulator; - }, - {} as { [fileName: string]: boolean }, - ); -} - -function getModifiedFiles( - branchDirPath: string, - targetRepoPath: string, -): { - [fileName: string]: boolean; -} { - const currentBranchHash = getHashForDirectory(branchDirPath); - const targetBranchHash = getHashForDirectory(targetRepoPath); - - return getDifferencesBetweenHashes( - branchDirPath, - currentBranchHash, - targetBranchHash, - ); -} - function getFilesToCheck( branchTypescriptErrorMap: { [fileName: string]: number }, targetTypescriptErrorMap: { [fileName: string]: number }, - modifiedFiles: { [fileName: string]: boolean }, ): { [fileName: string]: { targetCount: number; @@ -98,7 +51,6 @@ function getFilesToCheck( } = {}; Object.entries(branchTypescriptErrorMap).forEach( ([fileName, branchCount]) => { - if (modifiedFiles[fileName]) return; const targetCount = targetTypescriptErrorMap[fileName] || 0; if (targetCount < branchCount) fileToCheck[fileName] = { branchCount, targetCount }; @@ -111,12 +63,10 @@ const branchDirPath = './'; const targetDirPath = './targetBranch'; const branchTypescriptErrorMap = getTypescriptErrorMap(branchDirPath); const targetTypescriptErrorMap = getTypescriptErrorMap(targetDirPath); -const modifiedFiles = getModifiedFiles(branchDirPath, targetDirPath); const fileToCheck = getFilesToCheck( branchTypescriptErrorMap, targetTypescriptErrorMap, - modifiedFiles, ); function logSmartTable(dataObject: { From 18d56b7f4cdfa016be4754c72058f36f9f2bc64c Mon Sep 17 00:00:00 2001 From: Nate Elliott Date: Tue, 13 Aug 2024 15:14:04 -0500 Subject: [PATCH 11/11] update filename references --- .github/workflows/typescript-all-files-check.yml | 2 +- scripts/jest-scripts.config.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/typescript-all-files-check.yml b/.github/workflows/typescript-all-files-check.yml index 8e20b67d122..768dafb2987 100644 --- a/.github/workflows/typescript-all-files-check.yml +++ b/.github/workflows/typescript-all-files-check.yml @@ -4,7 +4,7 @@ on: pull_request: jobs: - CheckUntouchedFiles: + CheckAllFilesForTypeErrorCount: runs-on: ubuntu-latest steps: diff --git a/scripts/jest-scripts.config.ts b/scripts/jest-scripts.config.ts index dfdcffdb6a5..d2b3df37178 100644 --- a/scripts/jest-scripts.config.ts +++ b/scripts/jest-scripts.config.ts @@ -7,7 +7,7 @@ const config: Config = { collectCoverage: true, collectCoverageFrom: [ '**/*.{js,ts}', - '!checkUntouchedFiles.ts', + '!checkAllFilesForTypeErrorCount.ts', '!circleci/*.ts', '!circleci/judge/bulkImportJudgeUsers.ts', '!circleci/judge/bulkImportJudgeUsers.helpers.ts',