diff --git a/internal/tsetse/tests/ban_conformance_pattern/fixer_test.ts b/internal/tsetse/tests/ban_conformance_pattern/fixer_test.ts
index 1bf13dd..3b7c85f 100644
--- a/internal/tsetse/tests/ban_conformance_pattern/fixer_test.ts
+++ b/internal/tsetse/tests/ban_conformance_pattern/fixer_test.ts
@@ -42,7 +42,7 @@
       expect(results).toHaveNFailures(1, baseConfig);
       expect(results[0]).toBeFailureMatching({
         matchedCode: `q.cite = 'some example string'`,
-        errorMessage: 'found citationz'
+        messageText: 'found citation'
       });
       expect(results[0]).toHaveFixMatching([
         {start: 50, end: 80, replacement: `Q.CITE = 'SOME EXAMPLE STRING'`}
@@ -57,7 +57,7 @@
       expect(results).toHaveNFailures(1, baseConfig);
       expect(results[0]).toBeFailureMatching({
         matchedCode: `q.cite = 'some example string'`,
-        errorMessage: 'found citationz'
+        messageText: 'found citation'
       });
       expect(results[0]).toHaveFixMatching([
         {start: 50, end: 80, replacement: `Q.CITE = 'SOME EXAMPLE STRING'`}
@@ -73,11 +73,11 @@
       expect(results).toHaveNFailures(2, baseConfig);
       expect(results[0]).toBeFailureMatching({
         matchedCode: `q.cite = 'some example string'`,
-        errorMessage: 'found citationz'
+        messageText: 'found citation'
       });
       expect(results[1]).toBeFailureMatching({
         matchedCode: `q.cite = 'some other example string'`,
-        errorMessage: 'found citationz'
+        messageText: 'found citation'
       });
       expect(results[0]).toHaveFixMatching([
         {start: 50, end: 80, replacement: `Q.CITE = 'SOME EXAMPLE STRING'`}
diff --git a/internal/tsetse/tests/ban_conformance_pattern/name_test.ts b/internal/tsetse/tests/ban_conformance_pattern/name_test.ts
index 3165d38..6bb06ec 100644
--- a/internal/tsetse/tests/ban_conformance_pattern/name_test.ts
+++ b/internal/tsetse/tests/ban_conformance_pattern/name_test.ts
@@ -17,7 +17,7 @@
     expect(results.length).toBe(1);
     expect(results[0]).toBeFailureMatching({
       matchedCode: `Infinity`,
-      errorMessage: 'no Infinity'
+      messageText: 'no Infinity'
     });
   });
 
@@ -35,7 +35,7 @@
     expect(results.length).toBe(1);
     expect(results[0]).toBeFailureMatching({
       matchedCode: `createObjectURL`,
-      errorMessage: 'no blob url'
+      messageText: 'no blob url'
     });
   });
 });
diff --git a/internal/tsetse/tests/ban_conformance_pattern/property_non_constant_write_test.ts b/internal/tsetse/tests/ban_conformance_pattern/property_non_constant_write_test.ts
index 8b51796..b545571 100644
--- a/internal/tsetse/tests/ban_conformance_pattern/property_non_constant_write_test.ts
+++ b/internal/tsetse/tests/ban_conformance_pattern/property_non_constant_write_test.ts
@@ -17,7 +17,7 @@
     expect(results.length).toBe(1);
     expect(results[0])
         .toBeFailureMatching(
-            {start: 71, end: 91, errorMessage: 'do not cite dynamically'});
+            {start: 71, end: 91, messageText: 'do not cite dynamically'});
   });
 });
 
diff --git a/internal/tsetse/tests/ban_conformance_pattern/property_write_test.ts b/internal/tsetse/tests/ban_conformance_pattern/property_write_test.ts
index 42290f2..e0f3254 100644
--- a/internal/tsetse/tests/ban_conformance_pattern/property_write_test.ts
+++ b/internal/tsetse/tests/ban_conformance_pattern/property_write_test.ts
@@ -19,7 +19,7 @@
     expect(results.length).toBe(1);
     expect(results[0]).toBeFailureMatching({
       matchedCode: `q.cite = 'some example string'`,
-      errorMessage: 'do not cite'
+      messageText: 'do not cite'
     });
   });
 
@@ -35,15 +35,15 @@
     expect(results.length).toBe(3);
     expect(results[0]).toBeFailureMatching({
       matchedCode: `q.cite = 'exampleA'`,
-      errorMessage: 'do not cite'
+      messageText: 'do not cite'
     });
     expect(results[1]).toBeFailureMatching({
       matchedCode: `q.cite = 'exampleB'`,
-      errorMessage: 'do not cite'
+      messageText: 'do not cite'
     });
     expect(results[2]).toBeFailureMatching({
       matchedCode: `q.cite = /* test2 */ 'exampleC'`,
-      errorMessage: 'do not cite'
+      messageText: 'do not cite'
     });
   })
 
@@ -58,7 +58,7 @@
     expect(results.length).toBe(1);
     expect(results[0]).toBeFailureMatching({
       matchedCode: `q.cite = 'some example string'`,
-      errorMessage: 'do not cite'
+      messageText: 'do not cite'
     });
   });
 
@@ -73,7 +73,7 @@
     expect(results[0]).toBeFailureMatching({
       matchedCode: 'q.cite = window.name',
       fileName: 'file_1.ts',
-      errorMessage: 'do not cite',
+      messageText: 'do not cite',
     });
   });
 
@@ -90,7 +90,7 @@
     // and `c` is both a Parent and a Child.
     const expectedFailure = {
       matchedCode: 'c.x = 1',
-      errorMessage: 'found write to x',
+      messageText: 'found write to x',
     };
 
     it('banning Parent.x matches (instance of Child).x', () => {
diff --git a/internal/tsetse/util/testing/test_support.ts b/internal/tsetse/util/testing/test_support.ts
index b6ca582..febf37a 100644
--- a/internal/tsetse/util/testing/test_support.ts
+++ b/internal/tsetse/util/testing/test_support.ts
@@ -112,6 +112,7 @@
         start?: number,
         end?: number,
         matchedCode?: string,
+        messageText?: string,
       }) => {
         const actualDiagnostic = actualFailure.toDiagnostic();
         let regrets = '';
@@ -127,6 +128,11 @@
                 actualDiagnostic.file.fileName} to end with ${exp.fileName}. `;
           }
         }
+        if (exp.messageText !== undefined &&
+            exp.messageText != actualDiagnostic.messageText) {
+          regrets += expectation(
+              'errorMessage', exp.messageText, actualDiagnostic.messageText);
+        }
         if (exp.start !== undefined && actualDiagnostic.start !== exp.start) {
           regrets += expectation('start', exp.start, actualDiagnostic.start);
         }
@@ -219,11 +225,11 @@
   namespace jasmine {
     interface Matchers<T> {
       toBeFailureMatching(expected: {
-        [i: string]: any,  // the rest
         fileName?: string,
         start?: number,
         end?: number,
-        matchedCode?: string
+        matchedCode?: string,
+        messageText?: string,
       }): void;
 
       toHaveFixMatching(expected: [
