diff --git a/lib/config/decrypt.spec.ts b/lib/config/decrypt.spec.ts
index ba2ad76e2d1ff678b223aa88511cac3cd3d5a07f..18c2c3808dbaa660807374c4584c4020d8a10418 100644
--- a/lib/config/decrypt.spec.ts
+++ b/lib/config/decrypt.spec.ts
@@ -22,14 +22,14 @@ describe('config/decrypt', () => {
     it('warns if no privateKey found', async () => {
       config.encrypted = { a: '1' };
       const res = await decryptConfig(config, repository);
-      expect(res.encrypted).not.toBeDefined();
-      expect(res.a).not.toBeDefined();
+      expect(res.encrypted).toBeUndefined();
+      expect(res.a).toBeUndefined();
     });
     it('handles invalid encrypted type', async () => {
       config.encrypted = 1;
       setGlobalConfig({ privateKey });
       const res = await decryptConfig(config, repository);
-      expect(res.encrypted).not.toBeDefined();
+      expect(res.encrypted).toBeUndefined();
     });
     it('handles invalid encrypted value', async () => {
       config.encrypted = { a: 1 };
@@ -47,9 +47,9 @@ describe('config/decrypt', () => {
           'FLA9YHIzpE7YetAg/P0X46npGRCMqn7hgyzwX5ZQ9wYgu9BRRbTiBVsUIFTyM5BuP1Q22slT2GkWvFvum7GU236Y6QiT7Nr8SLvtsJn2XUuq8H7REFKzdy3+wqyyWbCErYTFyY1dcPM7Ht+CaGDWdd8u/FsoX7AdMRs/X1jNUo6iSmlUiyGlYDKF+QMnCJom1VPVgZXWsGKdjI2MLny991QMaiv0VajmFIh4ENv4CtXOl/1twvIl/6XTXAaqpJJKDTPZEuydi+PHDZmal2RAOfrkH4m0UURa7SlfpUlIg+EaqbNGp85hCYXLwRcEET1OnYr3rH1oYkcYJ40any1tvQ==',
       };
       const res = await decryptConfig(config, repository);
-      expect(res.encrypted).not.toBeDefined();
-      expect(res.npmToken).not.toBeDefined();
-      expect(res.npmrc).toEqual(
+      expect(res.encrypted).toBeUndefined();
+      expect(res.npmToken).toBeUndefined();
+      expect(res.npmrc).toBe(
         '//registry.npmjs.org/:_authToken=abcdef-ghijklm-nopqf-stuvwxyz\n//registry.npmjs.org/:_authToken=abcdef-ghijklm-nopqf-stuvwxyz\n'
       );
     });
@@ -61,8 +61,8 @@ describe('config/decrypt', () => {
           'FLA9YHIzpE7YetAg/P0X46npGRCMqn7hgyzwX5ZQ9wYgu9BRRbTiBVsUIFTyM5BuP1Q22slT2GkWvFvum7GU236Y6QiT7Nr8SLvtsJn2XUuq8H7REFKzdy3+wqyyWbCErYTFyY1dcPM7Ht+CaGDWdd8u/FsoX7AdMRs/X1jNUo6iSmlUiyGlYDKF+QMnCJom1VPVgZXWsGKdjI2MLny991QMaiv0VajmFIh4ENv4CtXOl/1twvIl/6XTXAaqpJJKDTPZEuydi+PHDZmal2RAOfrkH4m0UURa7SlfpUlIg+EaqbNGp85hCYXLwRcEET1OnYr3rH1oYkcYJ40any1tvQ==',
       };
       const res = await decryptConfig(config, repository);
-      expect(res.encrypted).not.toBeDefined();
-      expect(res.npmToken).not.toBeDefined();
+      expect(res.encrypted).toBeUndefined();
+      expect(res.npmToken).toBeUndefined();
       expect(res.npmrc).toMatchSnapshot();
     });
     it('decrypts nested', async () => {
@@ -82,13 +82,13 @@ describe('config/decrypt', () => {
         'backend/package.json',
       ];
       const res = await decryptConfig(config, repository);
-      expect(res.encrypted).not.toBeDefined();
-      expect(res.packageFiles[0].devDependencies.encrypted).not.toBeDefined();
-      expect(res.packageFiles[0].devDependencies.branchPrefix).toEqual(
+      expect(res.encrypted).toBeUndefined();
+      expect(res.packageFiles[0].devDependencies.encrypted).toBeUndefined();
+      expect(res.packageFiles[0].devDependencies.branchPrefix).toBe(
         'abcdef-ghijklm-nopqf-stuvwxyz'
       );
-      expect(res.packageFiles[0].devDependencies.npmToken).not.toBeDefined();
-      expect(res.packageFiles[0].devDependencies.npmrc).toEqual(
+      expect(res.packageFiles[0].devDependencies.npmToken).toBeUndefined();
+      expect(res.packageFiles[0].devDependencies.npmrc).toBe(
         '//registry.npmjs.org/:_authToken=abcdef-ghijklm-nopqf-stuvwxyz\n'
       );
     });
@@ -139,8 +139,8 @@ describe('config/decrypt', () => {
           'wcFMAw+4H7SgaqGOAQ/+Lz6RlbEymbnmMhrktuaGiDPWRNPEQFuMRwwYM6/B/r0JMZa9tskAA5RpyYKxGmJJeuRtlA8GkTw02GoZomlJf/KXJZ95FwSbkXMSRJRD8LJ2402Hw2TaOTaSvfamESnm8zhNo8cok627nkKQkyrpk64heVlU5LIbO2+UgYgbiSQjuXZiW+QuJ1hVRjx011FQgEYc59+22yuKYqd8rrni7TrVqhGRlHCAqvNAGjBI4H7uTFh0sP4auunT/JjxTeTkJoNu8KgS/LdrvISpO67TkQziZo9XD5FOzSN7N3e4f8vO4N4fpjgkIDH/9wyEYe0zYz34xMAFlnhZzqrHycRqzBJuMxGqlFQcKWp9IisLMoVJhLrnvbDLuwwcjeqYkhvODjSs7UDKwTE4X4WmvZr0x4kOclOeAAz/pM6oNVnjgWJd9SnYtoa67bZVkne0k6mYjVhosie8v8icijmJ4OyLZUGWnjZCRd/TPkzQUw+B0yvsop9FYGidhCI+4MVx6W5w7SRtCctxVfCjLpmU4kWaBUUJ5YIQ5xm55yxEYuAsQkxOAYDCMFlV8ntWStYwIG1FsBgJX6VPevXuPPMjWiPNedIpJwBH2PLB4blxMfzDYuCeaIqU4daDaEWxxpuFTTK9fLdJKuipwFG6rwE3OuijeSN+2SLszi834DXtUjQdikHSTQG392+oTmZCFPeffLk/OiV2VpdXF3gGL7sr5M9hOWIZ783q0vW1l6nAElZ7UA//kW+L6QRxbnBVTJK5eCmMY6RJmL76zjqC1jQ0FC10',
       };
       const res = await decryptConfig(config, repository);
-      expect(res.encrypted).not.toBeDefined();
-      expect(res.token).toEqual('123');
+      expect(res.encrypted).toBeUndefined();
+      expect(res.token).toBe('123');
       await expect(decryptConfig(config, 'wrong/org')).rejects.toThrow(
         'config-validation'
       );
@@ -152,8 +152,8 @@ describe('config/decrypt', () => {
           'wcFMAw+4H7SgaqGOAQ//Wp7N0PaDZp0uOdwsc1CuqAq0UPcq+IQdHyKpJs3tHiCecXBHogy4P+rY9nGaUrVneCr4HexuKGuyJf1yl0ZqFffAUac5PjF8eDvjukQGOUq4aBlOogJCEefnuuVxVJx+NRR5iF1P6v57bmI1c+zoqZI/EQB30KU6O1BsdGPLUA/+R3dwCZd5Mbd36s34eYBasqcY9/QbqFcpElXMEPMse3kMCsVXPbZ+UMjtPJiBPUmtJq+ifnu1LzDrfshusSQMwgd/QNk7nEsijiYKllkWhHTP6g7zigvJ46x0h6AYS108YiuK3B9XUhXN9m05Ac6KTEEUdRI3E/dK2dQuRkLjXC8wceQm4A19Gm0uHoMIJYOCbiVoBCH6ayvKbZWZV5lZ4D1JbDNGmKeIj6OX9XWEMKiwTx0Xe89V7BdJzwIGrL0TCLtXuYWZ/R2k+UuBqtgzr44BsBqMpKUA0pcGBoqsEou1M05Ae9fJMF6ADezF5UQZPxT1hrMldiTp3p9iHGfWN2tKHeoW/8CqlIqg9JEkTc+Pl/L9E6ndy5Zjf097PvcmSGhxUQBE7XlrZoIlGhiEU/1HPMen0UUIs0LUu1ywpjCex2yTWnU2YmEwy0MQI1sekSr96QFxDDz9JcynYOYbqR/X9pdxEWyzQ+NJ3n6K97nE1Dj9Sgwu7mFGiUdNkf/SUAF0eZi/eXg71qumpMGBd4eWPtgkeMPLHjvMSYw9vBUfcoKFz6RJ4woG0dw5HOFkPnIjXKWllnl/o01EoBp/o8uswsIS9Nb8i+bp27U6tAHE',
       };
       const res = await decryptConfig(config, repository);
-      expect(res.encrypted).not.toBeDefined();
-      expect(res.token).toEqual('123');
+      expect(res.encrypted).toBeUndefined();
+      expect(res.token).toBe('123');
       await expect(decryptConfig(config, 'abc/defg')).rejects.toThrow(
         'config-validation'
       );
diff --git a/lib/config/index.spec.ts b/lib/config/index.spec.ts
index f0ab843c78e13cef36eaadceb9b1ce2351768d83..8aff5b04ab866ed349132955b01a0baadfc35c48 100644
--- a/lib/config/index.spec.ts
+++ b/lib/config/index.spec.ts
@@ -22,8 +22,8 @@ describe('config/index', () => {
       };
       const configParser = await import('./index');
       const config = configParser.mergeChildConfig(parentConfig, childConfig);
-      expect(config.foo).toEqual('bar');
-      expect(config.rangeStrategy).toEqual('replace');
+      expect(config.foo).toBe('bar');
+      expect(config.rangeStrategy).toBe('replace');
       expect(config.lockFileMaintenance.schedule).toEqual(['on monday']);
       expect(config.lockFileMaintenance).toMatchSnapshot();
     });
@@ -57,7 +57,7 @@ describe('config/index', () => {
       const configParser = await import('./index');
       const config = configParser.mergeChildConfig(parentConfig, childConfig);
       expect(config.constraints).toMatchSnapshot();
-      expect(config.constraints.node).toEqual('<15');
+      expect(config.constraints.node).toBe('<15');
     });
     it('handles null parent packageRules', async () => {
       const parentConfig = { ...defaultConfig };
diff --git a/lib/config/migration.spec.ts b/lib/config/migration.spec.ts
index f0bbd8a9fead6cd4a54c38a984638acafd48e17a..9f2b54634d494a488a4615e25a498770d1ceeead 100644
--- a/lib/config/migration.spec.ts
+++ b/lib/config/migration.spec.ts
@@ -164,8 +164,8 @@ describe('config/migration', () => {
       );
       expect(migratedConfig).toMatchSnapshot();
       expect(isMigrated).toBeTrue();
-      expect(migratedConfig.depTypes).not.toBeDefined();
-      expect(migratedConfig.automerge).toEqual(false);
+      expect(migratedConfig.depTypes).toBeUndefined();
+      expect(migratedConfig.automerge).toBe(false);
       expect(migratedConfig.packageRules).toHaveLength(9);
       expect(migratedConfig.hostRules).toHaveLength(1);
     });
@@ -186,16 +186,12 @@ describe('config/migration', () => {
       expect(migratedConfig).toMatchSnapshot();
       expect(isMigrated).toBeTrue();
       expect(migratedConfig.major.schedule).toHaveLength(2);
-      expect(migratedConfig.major.schedule[0]).toEqual('after 10pm');
-      expect(migratedConfig.major.schedule[1]).toEqual('before 7am');
+      expect(migratedConfig.major.schedule[0]).toBe('after 10pm');
+      expect(migratedConfig.major.schedule[1]).toBe('before 7am');
       expect(migratedConfig.minor.schedule).toMatchSnapshot();
       expect(migratedConfig.minor.schedule).toHaveLength(2);
-      expect(migratedConfig.minor.schedule[0]).toEqual(
-        'after 10pm every weekday'
-      );
-      expect(migratedConfig.minor.schedule[1]).toEqual(
-        'before 7am every weekday'
-      );
+      expect(migratedConfig.minor.schedule[0]).toBe('after 10pm every weekday');
+      expect(migratedConfig.minor.schedule[1]).toBe('before 7am every weekday');
     });
     it('migrates every friday', () => {
       const config = {
@@ -207,7 +203,7 @@ describe('config/migration', () => {
         parentConfig
       );
       expect(isMigrated).toBeTrue();
-      expect(migratedConfig.schedule).toEqual('on friday');
+      expect(migratedConfig.schedule).toBe('on friday');
     });
     it('migrates semantic prefix with no scope', () => {
       const config = {
diff --git a/lib/config/presets/index.spec.ts b/lib/config/presets/index.spec.ts
index 5eed460ee8f63811a69193a309cf95f8cde52443..49e052eb0f7a59f561245ee097ab6dac7f9e688c 100644
--- a/lib/config/presets/index.spec.ts
+++ b/lib/config/presets/index.spec.ts
@@ -63,9 +63,7 @@ describe('config/presets/index', () => {
       }
       expect(e).toBeDefined();
       expect(e.validationSource).toBeUndefined();
-      expect(e.validationError).toEqual(
-        "Cannot find preset's package (notfound)"
-      );
+      expect(e.validationError).toBe("Cannot find preset's package (notfound)");
       expect(e.validationMessage).toBeUndefined();
     });
     it('throws if invalid preset', async () => {
@@ -79,7 +77,7 @@ describe('config/presets/index', () => {
       }
       expect(e).toBeDefined();
       expect(e.validationSource).toBeUndefined();
-      expect(e.validationError).toEqual(
+      expect(e.validationError).toBe(
         'Preset name not found within published preset config (wrongpreset:invalid-preset)'
       );
       expect(e.validationMessage).toBeUndefined();
@@ -96,9 +94,7 @@ describe('config/presets/index', () => {
       }
       expect(e).toBeDefined();
       expect(e.validationSource).toBeUndefined();
-      expect(e.validationError).toEqual(
-        'Preset is invalid (github>user/repo//)'
-      );
+      expect(e.validationError).toBe('Preset is invalid (github>user/repo//)');
       expect(e.validationMessage).toBeUndefined();
     });
 
@@ -113,7 +109,7 @@ describe('config/presets/index', () => {
       }
       expect(e).toBeDefined();
       expect(e.validationSource).toBeUndefined();
-      expect(e.validationError).toEqual(
+      expect(e.validationError).toBe(
         'Sub-presets cannot be combined with a custom path (github>user/repo//path:subpreset)'
       );
       expect(e.validationMessage).toBeUndefined();
@@ -130,7 +126,7 @@ describe('config/presets/index', () => {
       }
       expect(e).toBeDefined();
       expect(e.validationSource).toBeUndefined();
-      expect(e.validationError).toEqual(
+      expect(e.validationError).toBe(
         'Preset package is missing a renovate-config entry (noconfig:base)'
       );
       expect(e.validationMessage).toBeUndefined();
@@ -161,7 +157,7 @@ describe('config/presets/index', () => {
         ignoreDeps: [],
         rangeStrategy: 'pin',
       });
-      expect(res.rangeStrategy).toEqual('pin');
+      expect(res.rangeStrategy).toBe('pin');
     });
     it('throws if valid and invalid', async () => {
       config.foo = 1;
@@ -174,7 +170,7 @@ describe('config/presets/index', () => {
       }
       expect(e).toBeDefined();
       expect(e.validationSource).toBeUndefined();
-      expect(e.validationError).toEqual(
+      expect(e.validationError).toBe(
         'Preset name not found within published preset config (wrongpreset:invalid-preset)'
       );
       expect(e.validationMessage).toBeUndefined();
@@ -233,7 +229,7 @@ describe('config/presets/index', () => {
       config.extends = ['ikatyang:library'];
       const res = await presets.resolveConfigPresets(config);
       expect(res).toMatchSnapshot();
-      expect(res.automerge).not.toBeDefined();
+      expect(res.automerge).toBeUndefined();
       expect(res.minor.automerge).toBeTrue();
     });
 
@@ -256,7 +252,7 @@ describe('config/presets/index', () => {
 
       expect(res.labels).toEqual(['self-hosted resolved']);
       expect(local.getPreset.mock.calls).toHaveLength(1);
-      expect(local.getPreset.mock.calls[0][0].baseConfig).not.toBeUndefined();
+      expect(local.getPreset.mock.calls[0][0].baseConfig).toBeDefined();
       expect(res).toMatchSnapshot();
     });
   });
@@ -269,12 +265,12 @@ describe('config/presets/index', () => {
     it('replaces args in strings', () => {
       const str = '{{arg2}} foo {{arg0}}{{arg1}}';
       const res = presets.replaceArgs(str, argMappings);
-      expect(res).toEqual('c foo ab');
+      expect(res).toBe('c foo ab');
     });
     it('replaces args twice in same string', () => {
       const str = '{{arg2}}{{arg0}} foo {{arg0}}{{arg1}}';
       const res = presets.replaceArgs(str, argMappings);
-      expect(res).toEqual('ca foo ab');
+      expect(res).toBe('ca foo ab');
     });
     it('replaces objects', () => {
       const obj = {
diff --git a/lib/config/validation.spec.ts b/lib/config/validation.spec.ts
index eaa44fec3bf26d2161858701cd45373d90ad8d03..f850f7f291e1881fb449386deda75b0815490fbf 100644
--- a/lib/config/validation.spec.ts
+++ b/lib/config/validation.spec.ts
@@ -7,12 +7,10 @@ describe('config/validation', () => {
       expect(configValidation.getParentName('encrypted')).toBeEmptyString();
     });
     it('handles array types', () => {
-      expect(configValidation.getParentName('hostRules[1]')).toEqual(
-        'hostRules'
-      );
+      expect(configValidation.getParentName('hostRules[1]')).toBe('hostRules');
     });
     it('handles encrypted within array types', () => {
-      expect(configValidation.getParentName('hostRules[0].encrypted')).toEqual(
+      expect(configValidation.getParentName('hostRules[0].encrypted')).toBe(
         'hostRules'
       );
     });
diff --git a/lib/datasource/bitbucket-tags/index.spec.ts b/lib/datasource/bitbucket-tags/index.spec.ts
index ef011d6e13dac7ffe7260e46ac9cbd6b4c4926af..9e9e773b2897b68282c490acc78c438ad54dab7a 100644
--- a/lib/datasource/bitbucket-tags/index.spec.ts
+++ b/lib/datasource/bitbucket-tags/index.spec.ts
@@ -73,7 +73,7 @@ describe('datasource/bitbucket-tags/index', () => {
       });
       expect(res).toMatchSnapshot();
       expect(res).toBeString();
-      expect(res).toEqual('123');
+      expect(res).toBe('123');
       expect(httpMock.getTrace()).toMatchSnapshot();
     });
   });
@@ -123,7 +123,7 @@ describe('datasource/bitbucket-tags/index', () => {
       );
       expect(res).toMatchSnapshot();
       expect(res).toBeString();
-      expect(res).toEqual('123');
+      expect(res).toBe('123');
       expect(httpMock.getTrace()).toMatchSnapshot();
     });
   });
diff --git a/lib/datasource/clojure/index.spec.ts b/lib/datasource/clojure/index.spec.ts
index 642829eb34ae8a9338fcdcd21052ee11ae2f9294..66aab7a7ecbf7fccb2503ae04e6dcc10fb22c5ed 100644
--- a/lib/datasource/clojure/index.spec.ts
+++ b/lib/datasource/clojure/index.spec.ts
@@ -311,6 +311,6 @@ describe('datasource/clojure/index', () => {
 
     const { sourceUrl } = await get();
 
-    expect(sourceUrl).toEqual('https://github.com/example/test');
+    expect(sourceUrl).toBe('https://github.com/example/test');
   });
 });
diff --git a/lib/datasource/go/releases-goproxy.spec.ts b/lib/datasource/go/releases-goproxy.spec.ts
index 4d85ca647bdf9bcbba1bfdef552a2ce15d6c0201..e6ec16ca38612dd4711c6091fd64de63aa648e11 100644
--- a/lib/datasource/go/releases-goproxy.spec.ts
+++ b/lib/datasource/go/releases-goproxy.spec.ts
@@ -98,15 +98,15 @@ describe('datasource/go/releases-goproxy', () => {
       expect(parseNoproxy(undefined)).toBeNull();
       expect(parseNoproxy(null)).toBeNull();
       expect(parseNoproxy('')).toBeNull();
-      expect(parseNoproxy('*')?.source).toEqual('^(?:[^\\/]*)$');
-      expect(parseNoproxy('?')?.source).toEqual('^(?:[^\\/])$');
-      expect(parseNoproxy('foo')?.source).toEqual('^(?:foo)$');
-      expect(parseNoproxy('\\f\\o\\o')?.source).toEqual('^(?:foo)$');
-      expect(parseNoproxy('foo,bar')?.source).toEqual('^(?:foo|bar)$');
-      expect(parseNoproxy('[abc]')?.source).toEqual('^(?:[abc])$');
-      expect(parseNoproxy('[a-c]')?.source).toEqual('^(?:[a-c])$');
-      expect(parseNoproxy('[\\a-\\c]')?.source).toEqual('^(?:[a-c])$');
-      expect(parseNoproxy('a.b.c')?.source).toEqual('^(?:a\\.b\\.c)$');
+      expect(parseNoproxy('*')?.source).toBe('^(?:[^\\/]*)$');
+      expect(parseNoproxy('?')?.source).toBe('^(?:[^\\/])$');
+      expect(parseNoproxy('foo')?.source).toBe('^(?:foo)$');
+      expect(parseNoproxy('\\f\\o\\o')?.source).toBe('^(?:foo)$');
+      expect(parseNoproxy('foo,bar')?.source).toBe('^(?:foo|bar)$');
+      expect(parseNoproxy('[abc]')?.source).toBe('^(?:[abc])$');
+      expect(parseNoproxy('[a-c]')?.source).toBe('^(?:[a-c])$');
+      expect(parseNoproxy('[\\a-\\c]')?.source).toBe('^(?:[a-c])$');
+      expect(parseNoproxy('a.b.c')?.source).toBe('^(?:a\\.b\\.c)$');
     });
 
     it('matches on real package prefixes', () => {
diff --git a/lib/datasource/helm/index.spec.ts b/lib/datasource/helm/index.spec.ts
index 051b5df29f66b0bc91c13b65492cc4fd4a5b7684..31544ce46e46a3e55234151cdffafe48c43b9236 100644
--- a/lib/datasource/helm/index.spec.ts
+++ b/lib/datasource/helm/index.spec.ts
@@ -180,7 +180,7 @@ describe('datasource/helm/index', () => {
         registryUrls: ['https://example-repository.com/subdir'],
       });
       const trace = httpMock.getTrace();
-      expect(trace[0].url).toEqual(
+      expect(trace[0].url).toBe(
         'https://example-repository.com/subdir/index.yaml'
       );
       expect(trace).toMatchSnapshot();
diff --git a/lib/datasource/index.spec.ts b/lib/datasource/index.spec.ts
index 95a2a1b1e18db29c32ce74bca8d1d715c9bc599d..8042ddd59773f930d370e96e90684c8394120519 100644
--- a/lib/datasource/index.spec.ts
+++ b/lib/datasource/index.spec.ts
@@ -137,7 +137,7 @@ describe('datasource/index', () => {
       versioning: 'loose',
     });
     expect(res.releases).toHaveLength(1);
-    expect(res.releases[0].version).toEqual('v1.0');
+    expect(res.releases[0].version).toBe('v1.0');
   });
   it('adds sourceUrl', async () => {
     npmDatasource.getReleases.mockResolvedValue({
@@ -285,7 +285,7 @@ describe('datasource/index', () => {
       datasource: datasourceNpm.id,
       depName: 'abc',
     });
-    expect(res.sourceUrl).toEqual('https://abc.com');
+    expect(res.sourceUrl).toBe('https://abc.com');
   });
   it('massages sourceUrl', async () => {
     npmDatasource.getReleases.mockResolvedValue({
@@ -296,6 +296,6 @@ describe('datasource/index', () => {
       datasource: datasourceNpm.id,
       depName: 'cas',
     });
-    expect(res.sourceUrl).toEqual('https://github.com/Jasig/cas');
+    expect(res.sourceUrl).toBe('https://github.com/Jasig/cas');
   });
 });
diff --git a/lib/datasource/maven/index.spec.ts b/lib/datasource/maven/index.spec.ts
index 5361a99e6226e49da8ade59db4f66fae5c540783..c6812fd6dbf054b46d05abfabed657852d378c5c 100644
--- a/lib/datasource/maven/index.spec.ts
+++ b/lib/datasource/maven/index.spec.ts
@@ -327,7 +327,7 @@ describe('datasource/maven/index', () => {
 
     const { sourceUrl } = await get();
 
-    expect(sourceUrl).toEqual('https://github.com/example/test');
+    expect(sourceUrl).toBe('https://github.com/example/test');
   });
 
   it('removes authentication header after redirect', async () => {
diff --git a/lib/datasource/metadata.spec.ts b/lib/datasource/metadata.spec.ts
index 7a05cc72f9402fda7f274c5d05d121a0bb105b14..71ff2932c4c2e41c38cce7c3634678e6ea17207a 100644
--- a/lib/datasource/metadata.spec.ts
+++ b/lib/datasource/metadata.spec.ts
@@ -161,7 +161,7 @@ describe('datasource/metadata', () => {
     const lookupName = 'io.mockk:mockk';
 
     addMetaData(dep, datasource, lookupName);
-    expect(dep.sourceUrl).toEqual('https://github.com/mockk/mockk');
+    expect(dep.sourceUrl).toBe('https://github.com/mockk/mockk');
   });
 
   it('Should move github homepage to sourceUrl', () => {
@@ -174,7 +174,7 @@ describe('datasource/metadata', () => {
     const lookupName = 'io.mockk:mockk';
 
     addMetaData(dep, datasource, lookupName);
-    expect(dep.sourceUrl).toEqual('https://github.com/mockk/mockk');
+    expect(dep.sourceUrl).toBe('https://github.com/mockk/mockk');
     expect(dep.homepage).toBeUndefined();
   });
 
@@ -187,7 +187,7 @@ describe('datasource/metadata', () => {
     const lookupName = 'dropzone';
 
     addMetaData(dep, datasource, lookupName);
-    expect(dep.sourceUrl).toEqual('https://gitlab.com/meno/dropzone');
+    expect(dep.sourceUrl).toBe('https://gitlab.com/meno/dropzone');
   });
 
   it('Should normalize releaseTimestamp', () => {
diff --git a/lib/datasource/npm/get.spec.ts b/lib/datasource/npm/get.spec.ts
index c9e7e4baf127ab0476ca191c6c6cbd18876bd9e2..36df1ce3bcb75270700b97643d1b7f8cedd15c75 100644
--- a/lib/datasource/npm/get.spec.ts
+++ b/lib/datasource/npm/get.spec.ts
@@ -43,7 +43,7 @@ describe('datasource/npm/get', () => {
       await getDependency('@myco/test');
 
       const trace = httpMock.getTrace();
-      expect(trace[0].headers.authorization).toEqual('Bearer XXX');
+      expect(trace[0].headers.authorization).toBe('Bearer XXX');
       expect(trace).toMatchSnapshot();
     });
   });
@@ -75,7 +75,7 @@ describe('datasource/npm/get', () => {
       await getDependency('@myco/test');
 
       const trace = httpMock.getTrace();
-      expect(trace[0].headers.authorization).toEqual('Basic dGVzdDp0ZXN0');
+      expect(trace[0].headers.authorization).toBe('Basic dGVzdDp0ZXN0');
       expect(trace).toMatchSnapshot();
     });
   });
@@ -302,7 +302,7 @@ describe('datasource/npm/get', () => {
 
     expect(dep.sourceUrl).toBe('https://github.com/vuejs/vue.git');
     expect(dep.releases[0].sourceUrl).toBeUndefined();
-    expect(dep.releases[1].sourceUrl).toEqual(
+    expect(dep.releases[1].sourceUrl).toBe(
       'https://github.com/vuejs/vue-next.git'
     );
   });
diff --git a/lib/datasource/nuget/index.spec.ts b/lib/datasource/nuget/index.spec.ts
index d6832c70351a2a3f00637a9b7abc743c63a08352..926de848f3ed560fd4f432876fc15108d25a6644 100644
--- a/lib/datasource/nuget/index.spec.ts
+++ b/lib/datasource/nuget/index.spec.ts
@@ -99,22 +99,22 @@ describe('datasource/nuget/index', () => {
     it('extracts feed version from registry URL hash (v3)', () => {
       const parsed = parseRegistryUrl('https://my-registry#protocolVersion=3');
 
-      expect(parsed.feedUrl).toEqual('https://my-registry/');
-      expect(parsed.protocolVersion).toEqual(3);
+      expect(parsed.feedUrl).toBe('https://my-registry/');
+      expect(parsed.protocolVersion).toBe(3);
     });
 
     it('extracts feed version from registry URL hash (v2)', () => {
       const parsed = parseRegistryUrl('https://my-registry#protocolVersion=2');
 
-      expect(parsed.feedUrl).toEqual('https://my-registry/');
-      expect(parsed.protocolVersion).toEqual(2);
+      expect(parsed.feedUrl).toBe('https://my-registry/');
+      expect(parsed.protocolVersion).toBe(2);
     });
 
     it('defaults to v2', () => {
       const parsed = parseRegistryUrl('https://my-registry');
 
-      expect(parsed.feedUrl).toEqual('https://my-registry/');
-      expect(parsed.protocolVersion).toEqual(2);
+      expect(parsed.feedUrl).toBe('https://my-registry/');
+      expect(parsed.protocolVersion).toBe(2);
     });
 
     it('returns null for unparseable', () => {
@@ -122,9 +122,7 @@ describe('datasource/nuget/index', () => {
         'https://test:malfor%5Med@test.example.com'
       );
 
-      expect(parsed.feedUrl).toEqual(
-        'https://test:malfor%5Med@test.example.com'
-      );
+      expect(parsed.feedUrl).toBe('https://test:malfor%5Med@test.example.com');
       expect(parsed.protocolVersion).toBeNull();
     });
   });
@@ -163,7 +161,7 @@ describe('datasource/nuget/index', () => {
         ...config,
       });
       const trace = httpMock.getTrace();
-      expect(trace[0].url).toEqual('https://my-registry/');
+      expect(trace[0].url).toBe('https://my-registry/');
       expect(trace).toMatchSnapshot();
     });
 
@@ -445,7 +443,7 @@ describe('datasource/nuget/index', () => {
       });
       expect(res).not.toBeNull();
       expect(res).toMatchSnapshot();
-      expect(res.sourceUrl).not.toBeDefined();
+      expect(res.sourceUrl).toBeUndefined();
       expect(httpMock.getTrace()).toMatchSnapshot();
     });
     it('processes real data (v3) nuspec fetch 404 error', async () => {
@@ -463,7 +461,7 @@ describe('datasource/nuget/index', () => {
       });
       expect(res).not.toBeNull();
       expect(res).toMatchSnapshot();
-      expect(res.sourceUrl).not.toBeDefined();
+      expect(res.sourceUrl).toBeUndefined();
       expect(httpMock.getTrace()).toMatchSnapshot();
     });
     it('processes real data (v2)', async () => {
@@ -506,7 +504,7 @@ describe('datasource/nuget/index', () => {
       });
       expect(res).not.toBeNull();
       expect(res).toMatchSnapshot();
-      expect(res.sourceUrl).not.toBeDefined();
+      expect(res.sourceUrl).toBeUndefined();
       expect(httpMock.getTrace()).toMatchSnapshot();
     });
     it('processes real data with no github project url (v2)', async () => {
diff --git a/lib/datasource/orb/index.spec.ts b/lib/datasource/orb/index.spec.ts
index 57f1aa678b9fb68e03bf547def9a1ac1ff8faeb9..fa40d1bd2e9307236affa2a6ae230ca873766097 100644
--- a/lib/datasource/orb/index.spec.ts
+++ b/lib/datasource/orb/index.spec.ts
@@ -94,7 +94,7 @@ describe('datasource/orb/index', () => {
         depName: 'hyper-expanse/library-release-workflows',
       });
       expect(res).toMatchSnapshot();
-      expect(res.homepage).toEqual('https://google.com');
+      expect(res.homepage).toBe('https://google.com');
       expect(httpMock.getTrace()).toMatchSnapshot();
     });
   });
diff --git a/lib/datasource/repology/index.spec.ts b/lib/datasource/repology/index.spec.ts
index c7b7e1378320b6947c2d7a46598f94cc166820fc..7f9a67c136f32aba4e0dc09833a461f869f08f7b 100644
--- a/lib/datasource/repology/index.spec.ts
+++ b/lib/datasource/repology/index.spec.ts
@@ -221,7 +221,7 @@ describe('datasource/repology/index', () => {
       });
       expect(res).toMatchSnapshot();
       expect(res.releases).toHaveLength(1);
-      expect(res.releases[0].version).toEqual('1.14.2-2+deb10u1');
+      expect(res.releases[0].version).toBe('1.14.2-2+deb10u1');
       expect(httpMock.getTrace()).toMatchSnapshot();
     });
 
@@ -241,7 +241,7 @@ describe('datasource/repology/index', () => {
       });
       expect(res).toMatchSnapshot();
       expect(res.releases).toHaveLength(1);
-      expect(res.releases[0].version).toEqual('1.181');
+      expect(res.releases[0].version).toBe('1.181');
       expect(httpMock.getTrace()).toMatchSnapshot();
     });
 
@@ -258,7 +258,7 @@ describe('datasource/repology/index', () => {
       });
       expect(res).toMatchSnapshot();
       expect(res.releases).toHaveLength(1);
-      expect(res.releases[0].version).toEqual('1.181');
+      expect(res.releases[0].version).toBe('1.181');
       expect(httpMock.getTrace()).toMatchSnapshot();
     });
 
@@ -275,7 +275,7 @@ describe('datasource/repology/index', () => {
       });
       expect(res).toMatchSnapshot();
       expect(res.releases).toHaveLength(1);
-      expect(res.releases[0].version).toEqual('9.3.0-r2');
+      expect(res.releases[0].version).toBe('9.3.0-r2');
       expect(httpMock.getTrace()).toMatchSnapshot();
     });
 
@@ -292,7 +292,7 @@ describe('datasource/repology/index', () => {
       });
       expect(res).toMatchSnapshot();
       expect(res.releases).toHaveLength(1);
-      expect(res.releases[0].version).toEqual('12.2-4+deb10u1');
+      expect(res.releases[0].version).toBe('12.2-4+deb10u1');
       expect(httpMock.getTrace()).toMatchSnapshot();
     });
 
@@ -312,8 +312,8 @@ describe('datasource/repology/index', () => {
       });
       expect(res).toMatchSnapshot();
       expect(res.releases).toHaveLength(6);
-      expect(res.releases[0].version).toEqual('1:11.0.7.10-1.el8_1');
-      expect(res.releases[5].version).toEqual('1:11.0.9.11-3.el8_3');
+      expect(res.releases[0].version).toBe('1:11.0.7.10-1.el8_1');
+      expect(res.releases[5].version).toBe('1:11.0.9.11-3.el8_3');
       expect(httpMock.getTrace()).toMatchSnapshot();
     });
 
diff --git a/lib/logger/index.spec.ts b/lib/logger/index.spec.ts
index 29d7b931adf8036c62f858e68ff7926bdb4ddf63..c6de2300da9b2e6ca40d0c7f11a00c5158acffd8 100644
--- a/lib/logger/index.spec.ts
+++ b/lib/logger/index.spec.ts
@@ -25,7 +25,7 @@ describe('logger/index', () => {
   });
   it('sets and gets context', () => {
     setContext('123test');
-    expect(getContext()).toEqual('123test');
+    expect(getContext()).toBe('123test');
   });
   it('supports logging with metadata', () => {
     expect(() => logger.debug({ some: 'meta' }, 'some meta')).not.toThrow();
@@ -108,7 +108,7 @@ describe('logger/index', () => {
 
     logger.error('foo');
 
-    expect(JSON.parse(chunk).msg).toEqual('foo');
+    expect(JSON.parse(chunk).msg).toBe('foo');
   });
 
   it('handles cycles', () => {
@@ -130,10 +130,10 @@ describe('logger/index', () => {
     meta.foo = meta;
     meta.bar.push(meta);
     logger.error(meta, 'foo');
-    expect(logged.msg).toEqual('foo');
-    expect(logged.foo.foo).toEqual('[Circular]');
+    expect(logged.msg).toBe('foo');
+    expect(logged.foo.foo).toBe('[Circular]');
     expect(logged.foo.bar).toEqual(['[Circular]']);
-    expect(logged.bar).toEqual('[Circular]');
+    expect(logged.bar).toBe('[Circular]');
   });
 
   it('sanitizes secrets', () => {
@@ -164,14 +164,14 @@ describe('logger/index', () => {
       },
     });
 
-    expect(logged.foo).not.toEqual('secret"password');
-    expect(logged.bar[0]).toEqual('somethingelse');
+    expect(logged.foo).not.toBe('secret"password');
+    expect(logged.bar[0]).toBe('somethingelse');
     expect(logged.foo).toContain('redacted');
     expect(logged.bar[1]).toContain('redacted');
-    expect(logged.npmToken).not.toEqual('token');
-    expect(logged.buffer).toEqual('[content]');
-    expect(logged.content).toEqual('[content]');
-    expect(logged.prBody).toEqual('[Template]');
-    expect(logged.secrets.foo).toEqual('***********');
+    expect(logged.npmToken).not.toBe('token');
+    expect(logged.buffer).toBe('[content]');
+    expect(logged.content).toBe('[content]');
+    expect(logged.prBody).toBe('[Template]');
+    expect(logged.secrets.foo).toBe('***********');
   });
 });
diff --git a/lib/manager/bundler/gemfile.spec.ts b/lib/manager/bundler/gemfile.spec.ts
index 6d6dfc8ec4ae29690d571234e555f830562bcb99..849a921e9d389057c4edb654526f5b69be1a3b9e 100644
--- a/lib/manager/bundler/gemfile.spec.ts
+++ b/lib/manager/bundler/gemfile.spec.ts
@@ -6,7 +6,7 @@ const gemLockFile = loadFixture('Gemfile.rails.lock');
 describe('manager/bundler/gemfile', () => {
   it('matches the expected output', () => {
     const res = extractLockFileEntries(gemLockFile);
-    expect(res.size).toEqual(185);
+    expect(res.size).toBe(185);
     expect(res).toMatchSnapshot();
   });
 });
diff --git a/lib/manager/bundler/host-rules.spec.ts b/lib/manager/bundler/host-rules.spec.ts
index 3a8c85b01a4fcead21894f082c9d7b60a484f199..faccd49560f22739ce82b4cc95c189ddc5727712 100644
--- a/lib/manager/bundler/host-rules.spec.ts
+++ b/lib/manager/bundler/host-rules.spec.ts
@@ -17,14 +17,14 @@ describe('manager/bundler/host-rules', () => {
           username: 'test',
           password: 'password',
         })
-      ).toEqual('test:password');
+      ).toBe('test:password');
     });
     it('returns the authentication header with the token', () => {
       expect(
         getAuthenticationHeaderValue({
           token: 'token',
         })
-      ).toEqual('token');
+      ).toBe('token');
     });
   });
   describe('findAllAuthenticatable()', () => {
diff --git a/lib/manager/bundler/locked-version.spec.ts b/lib/manager/bundler/locked-version.spec.ts
index 6921b83bd28000a7aa31bc649fb5a0a2fe9191ef..8110d6cdab59ff0c0472423c975f6f8ca80d8d86 100644
--- a/lib/manager/bundler/locked-version.spec.ts
+++ b/lib/manager/bundler/locked-version.spec.ts
@@ -10,27 +10,27 @@ const gitlabFossGemfileLock = loadFixture('Gemfile.gitlab-foss.lock');
 describe('manager/bundler/locked-version', () => {
   test('Parse Rails Gem Lock File', () => {
     const parsedLockEntries = extractLockFileEntries(railsGemfileLock);
-    expect(parsedLockEntries.size).toEqual(185);
+    expect(parsedLockEntries.size).toBe(185);
     expect(parsedLockEntries).toMatchSnapshot();
   });
   test('Parse WebPacker Gem Lock File', () => {
     const parsedLockEntries = extractLockFileEntries(webPackerGemfileLock);
-    expect(parsedLockEntries.size).toEqual(53);
+    expect(parsedLockEntries.size).toBe(53);
     expect(parsedLockEntries).toMatchSnapshot();
   });
   test('Parse Mastodon Gem Lock File', () => {
     const parsedLockEntries = extractLockFileEntries(mastodonGemfileLock);
-    expect(parsedLockEntries.size).toEqual(266);
+    expect(parsedLockEntries.size).toBe(266);
     expect(parsedLockEntries).toMatchSnapshot();
   });
   test('Parse Ruby CI Gem Lock File', () => {
     const parsedLockEntries = extractLockFileEntries(rubyCIGemfileLock);
-    expect(parsedLockEntries.size).toEqual(64);
+    expect(parsedLockEntries.size).toBe(64);
     expect(parsedLockEntries).toMatchSnapshot();
   });
   test('Parse Gitlab Foss Gem Lock File', () => {
     const parsedLockEntries = extractLockFileEntries(gitlabFossGemfileLock);
-    expect(parsedLockEntries.size).toEqual(478);
+    expect(parsedLockEntries.size).toBe(478);
     expect(parsedLockEntries).toMatchSnapshot();
   });
 });
diff --git a/lib/manager/bundler/range.spec.ts b/lib/manager/bundler/range.spec.ts
index 7591971aa8d10eb47e04c7c8c0d6040fc33ba045..3755b379fd59cca12ccdd3d306377cb337c34670 100644
--- a/lib/manager/bundler/range.spec.ts
+++ b/lib/manager/bundler/range.spec.ts
@@ -5,11 +5,11 @@ describe('manager/bundler/range', () => {
   describe('getRangeStrategy()', () => {
     it('returns replace when rangeStrategy is auto', () => {
       const config: RangeConfig = { rangeStrategy: 'auto' };
-      expect(getRangeStrategy(config)).toEqual('replace');
+      expect(getRangeStrategy(config)).toBe('replace');
     });
     it('returns the config value when rangeStrategy is different than auto', () => {
       const config: RangeConfig = { rangeStrategy: 'update-lockfile' };
-      expect(getRangeStrategy(config)).toEqual('update-lockfile');
+      expect(getRangeStrategy(config)).toBe('update-lockfile');
     });
   });
 });
diff --git a/lib/manager/cargo/extract.spec.ts b/lib/manager/cargo/extract.spec.ts
index 585ed908e334cf2e80c7849e2cdc53c59766107c..d8c33612858f8b255d2e23251b4b2687c9b8d9d3 100644
--- a/lib/manager/cargo/extract.spec.ts
+++ b/lib/manager/cargo/extract.spec.ts
@@ -131,7 +131,7 @@ describe('manager/cargo/extract', () => {
 
       expect(res.deps).toMatchSnapshot();
       expect(res.deps).toHaveLength(1);
-      expect(res.deps[0].lookupName).toEqual('boolector');
+      expect(res.deps[0].lookupName).toBe('boolector');
     });
   });
 });
diff --git a/lib/manager/composer/range.spec.ts b/lib/manager/composer/range.spec.ts
index 91e53b001752d069c725944c21769e0880483b00..2f1d3621e0bbda58cb414f55a829557dc5bb7a2e 100644
--- a/lib/manager/composer/range.spec.ts
+++ b/lib/manager/composer/range.spec.ts
@@ -4,14 +4,14 @@ import { getRangeStrategy } from '.';
 describe('manager/composer/range', () => {
   it('returns same if not auto', () => {
     const config: RangeConfig = { rangeStrategy: 'widen' };
-    expect(getRangeStrategy(config)).toEqual('widen');
+    expect(getRangeStrategy(config)).toBe('widen');
   });
   it('pins require-dev', () => {
     const config: RangeConfig = {
       rangeStrategy: 'auto',
       depType: 'require-dev',
     };
-    expect(getRangeStrategy(config)).toEqual('pin');
+    expect(getRangeStrategy(config)).toBe('pin');
   });
   it('pins project require', () => {
     const config: RangeConfig = {
@@ -19,7 +19,7 @@ describe('manager/composer/range', () => {
       managerData: { composerJsonType: 'project' },
       depType: 'require',
     };
-    expect(getRangeStrategy(config)).toEqual('pin');
+    expect(getRangeStrategy(config)).toBe('pin');
   });
   it('widens complex ranges', () => {
     const config: RangeConfig = {
@@ -27,7 +27,7 @@ describe('manager/composer/range', () => {
       depType: 'require',
       currentValue: '^1.6.0 || ^2.0.0',
     };
-    expect(getRangeStrategy(config)).toEqual('widen');
+    expect(getRangeStrategy(config)).toBe('widen');
   });
   it('widens complex bump', () => {
     const config: RangeConfig = {
@@ -35,10 +35,10 @@ describe('manager/composer/range', () => {
       depType: 'require',
       currentValue: '^1.6.0 || ^2.0.0',
     };
-    expect(getRangeStrategy(config)).toEqual('widen');
+    expect(getRangeStrategy(config)).toBe('widen');
   });
   it('defaults to replace', () => {
     const config: RangeConfig = { rangeStrategy: 'auto', depType: 'require' };
-    expect(getRangeStrategy(config)).toEqual('replace');
+    expect(getRangeStrategy(config)).toBe('replace');
   });
 });
diff --git a/lib/manager/composer/utils.spec.ts b/lib/manager/composer/utils.spec.ts
index 516d751fe24c8ff6de9a775f1166b9b367a3c850..edeab17528734391edab965c1fa8665ff6956313 100644
--- a/lib/manager/composer/utils.spec.ts
+++ b/lib/manager/composer/utils.spec.ts
@@ -25,13 +25,11 @@ describe('manager/composer/utils', () => {
       });
     });
     it('returns from config', async () => {
-      expect(await getComposerConstraint({ composer: '1.1.0' })).toEqual(
-        '1.1.0'
-      );
+      expect(await getComposerConstraint({ composer: '1.1.0' })).toBe('1.1.0');
     });
 
     it('returns from latest', async () => {
-      expect(await getComposerConstraint({})).toEqual('2.1.0');
+      expect(await getComposerConstraint({})).toBe('2.1.0');
     });
 
     it('throws no releases', async () => {
@@ -97,7 +95,7 @@ describe('manager/composer/utils', () => {
     });
 
     it('disables scripts and plugins by default', () => {
-      expect(getComposerArguments({})).toEqual(
+      expect(getComposerArguments({})).toBe(
         ' --no-ansi --no-interaction --no-scripts --no-autoloader --no-plugins'
       );
     });
@@ -106,7 +104,7 @@ describe('manager/composer/utils', () => {
         getComposerArguments({
           composerIgnorePlatformReqs: [],
         })
-      ).toEqual(
+      ).toBe(
         ' --ignore-platform-reqs --no-ansi --no-interaction --no-scripts --no-autoloader --no-plugins'
       );
     });
@@ -115,7 +113,7 @@ describe('manager/composer/utils', () => {
         getComposerArguments({
           composerIgnorePlatformReqs: ['ext-intl'],
         })
-      ).toEqual(
+      ).toBe(
         ' --ignore-platform-req ext-intl --no-ansi --no-interaction --no-scripts --no-autoloader --no-plugins'
       );
     });
@@ -124,7 +122,7 @@ describe('manager/composer/utils', () => {
         getComposerArguments({
           composerIgnorePlatformReqs: ['ext-intl', 'ext-icu'],
         })
-      ).toEqual(
+      ).toBe(
         ' --ignore-platform-req ext-intl --ignore-platform-req ext-icu --no-ansi --no-interaction --no-scripts --no-autoloader --no-plugins'
       );
     });
@@ -132,7 +130,7 @@ describe('manager/composer/utils', () => {
       setGlobalConfig({
         allowScripts: true,
       });
-      expect(getComposerArguments({})).toEqual(' --no-ansi --no-interaction');
+      expect(getComposerArguments({})).toBe(' --no-ansi --no-interaction');
     });
     it('disables scripts/plugins when configured locally', () => {
       setGlobalConfig({
@@ -142,7 +140,7 @@ describe('manager/composer/utils', () => {
         getComposerArguments({
           ignoreScripts: true,
         })
-      ).toEqual(
+      ).toBe(
         ' --no-ansi --no-interaction --no-scripts --no-autoloader --no-plugins'
       );
     });
diff --git a/lib/manager/dockerfile/extract.spec.ts b/lib/manager/dockerfile/extract.spec.ts
index 0bd7c01e625b38806a9f94c49b552beb274b168a..4caefc8777945bb458e44de7e946090f0d66b66e 100644
--- a/lib/manager/dockerfile/extract.spec.ts
+++ b/lib/manager/dockerfile/extract.spec.ts
@@ -191,8 +191,8 @@ describe('manager/dockerfile/extract', () => {
           },
         ]
       `);
-      expect(res[0].depName).toEqual('registry2.something.info:5005/node');
-      expect(res[0].currentValue).toEqual('8');
+      expect(res[0].depName).toBe('registry2.something.info:5005/node');
+      expect(res[0].currentValue).toBe('8');
     });
 
     it('handles custom hosts with port without tag', () => {
@@ -212,7 +212,7 @@ describe('manager/dockerfile/extract', () => {
           },
         ]
       `);
-      expect(res[0].depName).toEqual('registry2.something.info:5005/node');
+      expect(res[0].depName).toBe('registry2.something.info:5005/node');
     });
 
     it('handles quay hosts with port', () => {
diff --git a/lib/manager/git-submodules/extract.spec.ts b/lib/manager/git-submodules/extract.spec.ts
index 12de81b03ce9e7b3c1ee4e09e33df49a3df91429..1b5ba0982896d6189980e3721654313017c5da20 100644
--- a/lib/manager/git-submodules/extract.spec.ts
+++ b/lib/manager/git-submodules/extract.spec.ts
@@ -50,14 +50,14 @@ describe('manager/git-submodules/extract', () => {
       expect(await extractPackageFile('', '.gitmodules.1', {})).toBeNull();
       res = await extractPackageFile('', '.gitmodules.2', {});
       expect(res.deps).toHaveLength(1);
-      expect(res.deps[0].currentValue).toEqual('main');
+      expect(res.deps[0].currentValue).toBe('main');
       res = await extractPackageFile('', '.gitmodules.3', {});
       expect(res.deps).toHaveLength(1);
       res = await extractPackageFile('', '.gitmodules.4', {});
       expect(res.deps).toHaveLength(1);
       res = await extractPackageFile('', '.gitmodules.5', {});
       expect(res.deps).toHaveLength(3);
-      expect(res.deps[2].lookupName).toEqual(
+      expect(res.deps[2].lookupName).toBe(
         'https://github.com/renovatebot/renovate-config.git'
       );
     });
diff --git a/lib/manager/git-submodules/update.spec.ts b/lib/manager/git-submodules/update.spec.ts
index 3e9b6c7f73e7877e9d9cb2fbfdedb854802453f5..358f06671370c7151f161d4a97e5888b444e22a3 100644
--- a/lib/manager/git-submodules/update.spec.ts
+++ b/lib/manager/git-submodules/update.spec.ts
@@ -50,7 +50,7 @@ describe('manager/git-submodules/update', () => {
         fileContent: '',
         upgrade,
       });
-      expect(update).toEqual('');
+      expect(update).toBe('');
     });
   });
 });
diff --git a/lib/manager/gitlabci-include/extract.spec.ts b/lib/manager/gitlabci-include/extract.spec.ts
index c7729dd9e86e000f9fd60d109cee6d268d1be4eb..b5a36706e704dbae5eab3719f0714355ef81f180 100644
--- a/lib/manager/gitlabci-include/extract.spec.ts
+++ b/lib/manager/gitlabci-include/extract.spec.ts
@@ -44,7 +44,7 @@ describe('manager/gitlabci-include/extract', () => {
         const res = extractPackageFile(yamlFileMultiConfig, '.gitlab-ci.yml', {
           endpoint,
         });
-        expect(res.deps[0].registryUrls[0]).toEqual('http://gitlab.test');
+        expect(res.deps[0].registryUrls[0]).toBe('http://gitlab.test');
       }
     });
   });
diff --git a/lib/manager/gomod/extract.spec.ts b/lib/manager/gomod/extract.spec.ts
index 45889a2c516767f8e6eae2ed8e41a242160f5017..b702220681b0d7805c7c5c42a1f8e8187f527272 100644
--- a/lib/manager/gomod/extract.spec.ts
+++ b/lib/manager/gomod/extract.spec.ts
@@ -20,7 +20,7 @@ describe('manager/gomod/extract', () => {
     it('extracts constraints', () => {
       const res = extractPackageFile(gomod3);
       expect(res).toMatchSnapshot();
-      expect(res.constraints.go).toEqual('^1.13');
+      expect(res.constraints.go).toBe('^1.13');
     });
     it('extracts multi-line requires', () => {
       const res = extractPackageFile(gomod2).deps;
diff --git a/lib/manager/gradle-wrapper/artifacts-real.spec.ts b/lib/manager/gradle-wrapper/artifacts-real.spec.ts
index 88fe508870ebd480442cb88e7b84cb8615e01966..b8a406f0621afd43334d9fccc02b5f8054c5bff4 100644
--- a/lib/manager/gradle-wrapper/artifacts-real.spec.ts
+++ b/lib/manager/gradle-wrapper/artifacts-real.spec.ts
@@ -151,10 +151,10 @@ describe('manager/gradle-wrapper/artifacts-real', () => {
         config,
       });
 
-      expect(res[0].artifactError.lockFile).toEqual(
+      expect(res[0].artifactError.lockFile).toBe(
         'gradle/wrapper/gradle-wrapper.properties'
       );
-      expect(res[0].artifactError.stderr).toEqual('failed');
+      expect(res[0].artifactError.stderr).toBe('failed');
 
       // 5.6.4 => 5.6.4 (updates execs) - unexpected behavior (looks like a bug in Gradle)
       ['gradle/wrapper/gradle-wrapper.properties'].forEach((file) => {
@@ -178,11 +178,11 @@ describe('manager/gradle-wrapper/artifacts-real', () => {
         config,
       });
 
-      expect(res[0].artifactError.lockFile).toEqual(
+      expect(res[0].artifactError.lockFile).toBe(
         'gradle/wrapper/gradle-wrapper.properties'
       );
       expect(res[0].artifactError.stderr).not.toBeNull();
-      expect(res[0].artifactError.stderr).not.toEqual('');
+      expect(res[0].artifactError.stderr).not.toBe('');
 
       // 5.6.4 => 5.6.4 (updates execs) - unexpected behavior (looks like a bug in Gradle)
       ['gradle/wrapper/gradle-wrapper.properties'].forEach((file) => {
diff --git a/lib/manager/gradle-wrapper/util.spec.ts b/lib/manager/gradle-wrapper/util.spec.ts
index 9a65c9c4b9c5d2ec6d384eefa11d02fc716af76f..61dd0852c7fc7e3d2548022710153bebc0bfd384 100644
--- a/lib/manager/gradle-wrapper/util.spec.ts
+++ b/lib/manager/gradle-wrapper/util.spec.ts
@@ -9,22 +9,22 @@ describe('manager/gradle-wrapper/util', () => {
 
     it('return ^11.0.0 for docker mode and undefined gradle', () => {
       setGlobalConfig({ binarySource: 'docker' });
-      expect(getJavaContraint(undefined)).toEqual('^11.0.0');
+      expect(getJavaContraint(undefined)).toBe('^11.0.0');
     });
 
     it('return ^8.0.0 for docker gradle < 5', () => {
       setGlobalConfig({ binarySource: 'docker' });
-      expect(getJavaContraint('4.9')).toEqual('^8.0.0');
+      expect(getJavaContraint('4.9')).toBe('^8.0.0');
     });
 
     it('return ^11.0.0 for docker gradle >=5 && <7', () => {
       setGlobalConfig({ binarySource: 'docker' });
-      expect(getJavaContraint('6.0')).toEqual('^11.0.0');
+      expect(getJavaContraint('6.0')).toBe('^11.0.0');
     });
 
     it('return ^16.0.0 for docker gradle >= 7', () => {
       setGlobalConfig({ binarySource: 'docker' });
-      expect(getJavaContraint('7.0.1')).toEqual('^16.0.0');
+      expect(getJavaContraint('7.0.1')).toBe('^16.0.0');
     });
   });
 
diff --git a/lib/manager/gradle/deep/build-gradle.spec.ts b/lib/manager/gradle/deep/build-gradle.spec.ts
index f12807a96f1274215c1772c390c7c9382500c816..639a906c5c3609492ddd00a9a876ff32661ef2d3 100644
--- a/lib/manager/gradle/deep/build-gradle.spec.ts
+++ b/lib/manager/gradle/deep/build-gradle.spec.ts
@@ -32,7 +32,7 @@ describe('manager/gradle/deep/build-gradle', () => {
       { group: 'mysql', name: 'mysql-connector-java', version: '6.0.5' },
       '7.0.0'
     );
-    expect(updatedGradleFile).toEqual(
+    expect(updatedGradleFile).toBe(
       "runtime (  'mysql:mysql-connector-java:7.0.0'  )"
     );
   });
@@ -49,7 +49,7 @@ describe('manager/gradle/deep/build-gradle', () => {
       },
       '2.10.1'
     );
-    expect(updatedGradleFile).toEqual(
+    expect(updatedGradleFile).toBe(
       "runtime (  'com.crashlytics.sdk.android:crashlytics:2.10.1@aar'  )"
     );
   });
@@ -61,7 +61,7 @@ describe('manager/gradle/deep/build-gradle', () => {
       { group: 'junit', name: 'junit', version: '4.0' },
       '5.0'
     );
-    expect(updatedGradleFile).toEqual(
+    expect(updatedGradleFile).toBe(
       "runtime (  'junit:junit:5.0:javadoc@jar'  )"
     );
   });
@@ -575,7 +575,7 @@ describe('manager/gradle/deep/build-gradle', () => {
       mysqlDependency,
       '7.0.0'
     );
-    expect(updatedGradleFile).toEqual('String mysqlVersion = "7.0.0"');
+    expect(updatedGradleFile).toBe('String mysqlVersion = "7.0.0"');
   });
 
   it('should replace a external groovy map variable assigned to a specific dependency', () => {
@@ -595,9 +595,7 @@ describe('manager/gradle/deep/build-gradle', () => {
       mysqlDependency,
       '7.0.0'
     );
-    expect(updatedGradleFile).toEqual(
-      'ext.versions = [ mysqlVersion: "7.0.0" ]'
-    );
+    expect(updatedGradleFile).toBe('ext.versions = [ mysqlVersion: "7.0.0" ]');
   });
 
   it('should replace a external groovy map nested variable assigned to a specific dependency', () => {
@@ -618,7 +616,7 @@ describe('manager/gradle/deep/build-gradle', () => {
       mysqlDependency,
       '7.0.0'
     );
-    expect(updatedGradleFile).toEqual(
+    expect(updatedGradleFile).toBe(
       'ext.versions = [ nested: [ mysqlVersion: "7.0.0" ] ]'
     );
   });
@@ -640,7 +638,7 @@ describe('manager/gradle/deep/build-gradle', () => {
       mysqlDependency,
       '7.0.0'
     );
-    expect(updatedGradleFile).toEqual('mysqlVersion=7.0.0');
+    expect(updatedGradleFile).toBe('mysqlVersion=7.0.0');
   });
 
   it('should replace a external property variable assigned to a specific dependency parenthesis syntax', () => {
@@ -660,7 +658,7 @@ describe('manager/gradle/deep/build-gradle', () => {
       mysqlDependency,
       '7.0.0'
     );
-    expect(updatedGradleFile).toEqual('mysqlVersion=7.0.0');
+    expect(updatedGradleFile).toBe('mysqlVersion=7.0.0');
   });
 
   it('should replace a external variable assigned to a map dependency', () => {
@@ -682,7 +680,7 @@ describe('manager/gradle/deep/build-gradle', () => {
       mysqlDependency,
       '7.0.0'
     );
-    expect(updatedGradleFile).toEqual('String mysqlVersion = "7.0.0"');
+    expect(updatedGradleFile).toBe('String mysqlVersion = "7.0.0"');
   });
 
   it('should replace a external variable assigned to a Kotlin named argument dependency', () => {
@@ -704,7 +702,7 @@ describe('manager/gradle/deep/build-gradle', () => {
       mysqlDependency,
       '7.0.0'
     );
-    expect(updatedGradleFile).toEqual('val mysqlVersion = "7.0.0"');
+    expect(updatedGradleFile).toBe('val mysqlVersion = "7.0.0"');
   });
 
   it('should replace a external variable assigned to a interpolated dependency', () => {
@@ -724,7 +722,7 @@ describe('manager/gradle/deep/build-gradle', () => {
       mysqlDependency,
       '7.0.0'
     );
-    expect(updatedGradleFile).toEqual('String mysqlVersion = "7.0.0"');
+    expect(updatedGradleFile).toBe('String mysqlVersion = "7.0.0"');
   });
 
   it('should replace a external extra variable assigned to a Kotlin named argument dependency', () => {
@@ -746,7 +744,7 @@ describe('manager/gradle/deep/build-gradle', () => {
       mysqlDependency,
       '7.0.0'
     );
-    expect(updatedGradleFile).toEqual('val mysqlVersion by extra("7.0.0")');
+    expect(updatedGradleFile).toBe('val mysqlVersion by extra("7.0.0")');
   });
 
   it('should replace a external lazy extra variable assigned to a Kotlin named argument dependency', () => {
@@ -768,7 +766,7 @@ describe('manager/gradle/deep/build-gradle', () => {
       mysqlDependency,
       '7.0.0'
     );
-    expect(updatedGradleFile).toEqual('val mysqlVersion by extra { "7.0.0" }');
+    expect(updatedGradleFile).toBe('val mysqlVersion by extra { "7.0.0" }');
   });
 
   it('should replace a external variable assigned to a plugin dependency', () => {
@@ -787,6 +785,6 @@ describe('manager/gradle/deep/build-gradle', () => {
       mysqlDependency,
       '7.0.0'
     );
-    expect(updatedGradleFile).toEqual('String mysqlVersion = "7.0.0"');
+    expect(updatedGradleFile).toBe('String mysqlVersion = "7.0.0"');
   });
 });
diff --git a/lib/manager/gradle/deep/index.spec.ts b/lib/manager/gradle/deep/index.spec.ts
index 06f3ab781808c15e648a1782a6831556d2ac3820..ae15709771070307787f79d8c1f830d0c88b1e05 100644
--- a/lib/manager/gradle/deep/index.spec.ts
+++ b/lib/manager/gradle/deep/index.spec.ts
@@ -321,7 +321,7 @@ describe('manager/gradle/deep/index', () => {
           packageFile: 'build.gradle',
         },
       ]);
-      expect(execSnapshots[0].cmd).toEqual('docker pull renovate/java:11.0.12');
+      expect(execSnapshots[0].cmd).toBe('docker pull renovate/java:11.0.12');
       expect(execSnapshots).toMatchSnapshot();
     });
 
@@ -340,7 +340,7 @@ describe('manager/gradle/deep/index', () => {
           packageFile: 'build.gradle',
         },
       ]);
-      expect(execSnapshots[0].cmd).toEqual('docker pull renovate/java:11.0.12');
+      expect(execSnapshots[0].cmd).toBe('docker pull renovate/java:11.0.12');
       expect(execSnapshots).toMatchSnapshot();
     });
 
@@ -360,7 +360,7 @@ describe('manager/gradle/deep/index', () => {
           packageFile: 'build.gradle',
         },
       ]);
-      expect(execSnapshots[0].cmd).toEqual('docker pull renovate/java:11.0.12');
+      expect(execSnapshots[0].cmd).toBe('docker pull renovate/java:11.0.12');
       expect(execSnapshots).toMatchSnapshot();
     });
   });
diff --git a/lib/manager/gradle/shallow/parser.spec.ts b/lib/manager/gradle/shallow/parser.spec.ts
index 0437a3aef1eaf59568dc1150ae7082a10ceffd63..4c962d4600d6640651e983760d8f2ba7c8b8e59f 100644
--- a/lib/manager/gradle/shallow/parser.spec.ts
+++ b/lib/manager/gradle/shallow/parser.spec.ts
@@ -246,7 +246,7 @@ describe('manager/gradle/shallow/parser', () => {
         content
           .slice(dep.managerData.fileReplacePosition)
           .indexOf(dep.currentValue)
-      ).toEqual(0);
+      ).toBe(0);
     });
     expect(deps).toMatchSnapshot();
   });
@@ -256,7 +256,7 @@ describe('manager/gradle/shallow/parser', () => {
     const res = deps[0];
     expect(
       content.slice(res.managerData.fileReplacePosition).indexOf('1.2.3')
-    ).toEqual(0);
+    ).toBe(0);
   });
   it('gradle.properties', () => {
     expect(parseProps('foo=bar')).toMatchObject({
diff --git a/lib/manager/gradle/shallow/update.spec.ts b/lib/manager/gradle/shallow/update.spec.ts
index 73033ef1c19eb38cbfa5236a995c6b84bf065549..3ef39f28f950e6aa40ba7236952961a8edb8bafb 100644
--- a/lib/manager/gradle/shallow/update.spec.ts
+++ b/lib/manager/gradle/shallow/update.spec.ts
@@ -13,7 +13,7 @@ describe('manager/gradle/shallow/update', () => {
           },
         },
       })
-    ).toEqual('___1.2.4___');
+    ).toBe('___1.2.4___');
   });
 
   it('groups', () => {
@@ -29,7 +29,7 @@ describe('manager/gradle/shallow/update', () => {
           },
         },
       })
-    ).toEqual('___1.2.5___');
+    ).toBe('___1.2.5___');
   });
 
   it('returns same content', () => {
diff --git a/lib/manager/helm-requirements/extract.spec.ts b/lib/manager/helm-requirements/extract.spec.ts
index 413c939d6181a8213cf606aa35139155c2ab358c..0420e15ff88e5cc4b3dcc5e103410f1cd52b92fc 100644
--- a/lib/manager/helm-requirements/extract.spec.ts
+++ b/lib/manager/helm-requirements/extract.spec.ts
@@ -37,7 +37,7 @@ describe('manager/helm-requirements/extract', () => {
       });
       expect(result).not.toBeNull();
       expect(result).toMatchSnapshot();
-      expect(result.deps.every((dep) => dep.skipReason)).toEqual(true);
+      expect(result.deps.every((dep) => dep.skipReason)).toBe(true);
     });
     it('parses simple requirements.yaml correctly', () => {
       fs.readLocalFile.mockResolvedValueOnce(`
@@ -111,7 +111,7 @@ describe('manager/helm-requirements/extract', () => {
       });
       expect(result).not.toBeNull();
       expect(result).toMatchSnapshot();
-      expect(result.deps.every((dep) => dep.skipReason)).toEqual(false);
+      expect(result.deps.every((dep) => dep.skipReason)).toBe(false);
     });
     it('skips local dependencies', () => {
       fs.readLocalFile.mockResolvedValueOnce(`
diff --git a/lib/manager/helmv3/extract.spec.ts b/lib/manager/helmv3/extract.spec.ts
index 3aa609097db193d5079c999c7053951be45366cc..fdee21c75621cf7e66006885d358d320334f5298 100644
--- a/lib/manager/helmv3/extract.spec.ts
+++ b/lib/manager/helmv3/extract.spec.ts
@@ -35,7 +35,7 @@ describe('manager/helmv3/extract', () => {
       });
       expect(result).not.toBeNull();
       expect(result).toMatchSnapshot();
-      expect(result.deps.every((dep) => dep.skipReason)).toEqual(true);
+      expect(result.deps.every((dep) => dep.skipReason)).toBe(true);
     });
     it('parses simple Chart.yaml correctly', async () => {
       const content = `
@@ -129,7 +129,7 @@ describe('manager/helmv3/extract', () => {
       });
       expect(result).not.toBeNull();
       expect(result).toMatchSnapshot();
-      expect(result.deps.every((dep) => dep.skipReason)).toEqual(false);
+      expect(result.deps.every((dep) => dep.skipReason)).toBe(false);
     });
     it("doesn't fail if Chart.yaml is invalid", async () => {
       const content = `
diff --git a/lib/manager/kustomize/extract.spec.ts b/lib/manager/kustomize/extract.spec.ts
index 265d0cc3d6888d5eafb1daf1b26c05d71d128ae6..9abae0efc101ff18178d83e0f53e36cddc64ae4e 100644
--- a/lib/manager/kustomize/extract.spec.ts
+++ b/lib/manager/kustomize/extract.spec.ts
@@ -221,16 +221,16 @@ describe('manager/kustomize/extract', () => {
       const res = extractPackageFile(kustomizeHTTP);
       expect(res.deps).toMatchSnapshot();
       expect(res.deps).toHaveLength(2);
-      expect(res.deps[0].currentValue).toEqual('v0.0.1');
-      expect(res.deps[1].currentValue).toEqual('1.19.0');
-      expect(res.deps[1].depName).toEqual('fluxcd/flux');
+      expect(res.deps[0].currentValue).toBe('v0.0.1');
+      expect(res.deps[1].currentValue).toBe('1.19.0');
+      expect(res.deps[1].depName).toBe('fluxcd/flux');
     });
     it('should extract out image versions', () => {
       const res = extractPackageFile(gitImages);
       expect(res.deps).toMatchSnapshot();
       expect(res.deps).toHaveLength(6);
-      expect(res.deps[0].currentValue).toEqual('v0.1.0');
-      expect(res.deps[1].currentValue).toEqual('v0.0.1');
+      expect(res.deps[0].currentValue).toBe('v0.1.0');
+      expect(res.deps[1].currentValue).toBe('v0.0.1');
       expect(res.deps[5].skipReason).toEqual(SkipReason.InvalidValue);
     });
     it('ignores non-Kubernetes empty files', () => {
@@ -244,28 +244,28 @@ describe('manager/kustomize/extract', () => {
       expect(res).not.toBeNull();
       expect(res.deps).toMatchSnapshot();
       expect(res.deps).toHaveLength(3);
-      expect(res.deps[0].currentValue).toEqual('v0.0.1');
-      expect(res.deps[1].currentValue).toEqual('1.19.0');
-      expect(res.deps[2].currentValue).toEqual('1.18.0');
-      expect(res.deps[1].depName).toEqual('fluxcd/flux');
-      expect(res.deps[2].depName).toEqual('fluxcd/flux');
-      expect(res.deps[0].depType).toEqual('Kustomization');
-      expect(res.deps[1].depType).toEqual('Kustomization');
-      expect(res.deps[2].depType).toEqual('Kustomization');
+      expect(res.deps[0].currentValue).toBe('v0.0.1');
+      expect(res.deps[1].currentValue).toBe('1.19.0');
+      expect(res.deps[2].currentValue).toBe('1.18.0');
+      expect(res.deps[1].depName).toBe('fluxcd/flux');
+      expect(res.deps[2].depName).toBe('fluxcd/flux');
+      expect(res.deps[0].depType).toBe('Kustomization');
+      expect(res.deps[1].depType).toBe('Kustomization');
+      expect(res.deps[2].depType).toBe('Kustomization');
     });
     it('should extract dependencies when kind is Component', () => {
       const res = extractPackageFile(kustomizeComponent);
       expect(res).not.toBeNull();
       expect(res.deps).toMatchSnapshot();
       expect(res.deps).toHaveLength(3);
-      expect(res.deps[0].currentValue).toEqual('1.19.0');
-      expect(res.deps[1].currentValue).toEqual('1.18.0');
-      expect(res.deps[2].currentValue).toEqual('v0.1.0');
-      expect(res.deps[1].depName).toEqual('fluxcd/flux');
-      expect(res.deps[2].depName).toEqual('node');
-      expect(res.deps[0].depType).toEqual('Component');
-      expect(res.deps[1].depType).toEqual('Component');
-      expect(res.deps[2].depType).toEqual('Component');
+      expect(res.deps[0].currentValue).toBe('1.19.0');
+      expect(res.deps[1].currentValue).toBe('1.18.0');
+      expect(res.deps[2].currentValue).toBe('v0.1.0');
+      expect(res.deps[1].depName).toBe('fluxcd/flux');
+      expect(res.deps[2].depName).toBe('node');
+      expect(res.deps[0].depType).toBe('Component');
+      expect(res.deps[1].depType).toBe('Component');
+      expect(res.deps[2].depType).toBe('Component');
     });
 
     const postgresDigest =
diff --git a/lib/manager/leiningen/extract.spec.ts b/lib/manager/leiningen/extract.spec.ts
index b5c250ebc67fdc5ba318fb12431b6e4911084af0..368a459ae3de55a23331966f14a8f7475f6101ea 100644
--- a/lib/manager/leiningen/extract.spec.ts
+++ b/lib/manager/leiningen/extract.spec.ts
@@ -13,9 +13,7 @@ describe('manager/leiningen/extract', () => {
   it('trimAtKey', () => {
     expect(trimAtKey('foo', 'bar')).toBeNull();
     expect(trimAtKey(':dependencies    ', 'dependencies')).toBeNull();
-    expect(trimAtKey(':dependencies \nfoobar', 'dependencies')).toEqual(
-      'foobar'
-    );
+    expect(trimAtKey(':dependencies \nfoobar', 'dependencies')).toBe('foobar');
   });
   it('extractFromVectors', () => {
     expect(extractFromVectors('')).toBeEmptyArray();
diff --git a/lib/manager/npm/extract/index.spec.ts b/lib/manager/npm/extract/index.spec.ts
index d12c23e157bed9d373ded15ed4ed94c8ee3b3c3b..7226b7cc7687bc2af450105227ae0f27d22072dd 100644
--- a/lib/manager/npm/extract/index.spec.ts
+++ b/lib/manager/npm/extract/index.spec.ts
@@ -163,7 +163,7 @@ describe('manager/npm/extract/index', () => {
         'package.json',
         {}
       );
-      expect(res.npmrc).toEqual('registry=https://registry.npmjs.org\n');
+      expect(res.npmrc).toBe('registry=https://registry.npmjs.org\n');
     });
     it('finds lerna', async () => {
       fs.readLocalFile = jest.fn((fileName) => {
diff --git a/lib/manager/npm/extract/monorepo.spec.ts b/lib/manager/npm/extract/monorepo.spec.ts
index 19763b49b334ae37d76f1b423d6eec7b897143ab..128563c7310337a90b0285a0657d624a62c3f224 100644
--- a/lib/manager/npm/extract/monorepo.spec.ts
+++ b/lib/manager/npm/extract/monorepo.spec.ts
@@ -50,7 +50,7 @@ describe('manager/npm/extract/monorepo', () => {
       ] as any;
       await detectMonorepos(packageFiles, false);
       expect(packageFiles).toMatchSnapshot();
-      expect(packageFiles[1].managerData.lernaJsonFile).toEqual('lerna.json');
+      expect(packageFiles[1].managerData.lernaJsonFile).toBe('lerna.json');
       expect(
         packageFiles.some((packageFile) =>
           packageFile.deps?.some((dep) => dep.skipReason)
@@ -104,7 +104,7 @@ describe('manager/npm/extract/monorepo', () => {
       ] as any;
       await detectMonorepos(packageFiles, true);
       expect(packageFiles).toMatchSnapshot();
-      expect(packageFiles[1].managerData.lernaJsonFile).toEqual('lerna.json');
+      expect(packageFiles[1].managerData.lernaJsonFile).toBe('lerna.json');
       expect(
         packageFiles.some((packageFile) =>
           packageFile.deps?.some((dep) => dep.skipReason)
@@ -134,7 +134,7 @@ describe('manager/npm/extract/monorepo', () => {
       ];
       await detectMonorepos(packageFiles, false);
       expect(packageFiles).toMatchSnapshot();
-      expect(packageFiles[1].managerData.lernaJsonFile).toEqual('lerna.json');
+      expect(packageFiles[1].managerData.lernaJsonFile).toBe('lerna.json');
     });
 
     it('uses yarn workspaces package settings without lerna', async () => {
diff --git a/lib/manager/npm/extract/npm.spec.ts b/lib/manager/npm/extract/npm.spec.ts
index 8e704676f4bd408dd303b357b03bf123d3a1df16..1cd429d659f3b9294f9a08d2fd4000c48e2c49b7 100644
--- a/lib/manager/npm/extract/npm.spec.ts
+++ b/lib/manager/npm/extract/npm.spec.ts
@@ -23,7 +23,7 @@ describe('manager/npm/extract/npm', () => {
       const res = await getNpmLock('package.json');
       expect(res).toMatchSnapshot();
       expect(Object.keys(res.lockedVersions)).toHaveLength(7);
-      expect(res.lockfileVersion).toEqual(2);
+      expect(res.lockfileVersion).toBe(2);
     });
     it('returns empty if no deps', async () => {
       fs.readLocalFile.mockResolvedValueOnce('{}');
diff --git a/lib/manager/npm/extract/pnpm.spec.ts b/lib/manager/npm/extract/pnpm.spec.ts
index d27216433f47adc292cd763a767bbbe98e7fc5c5..fc69ee6aa86c1792a63e1adb83c3ff296b29d4f9 100644
--- a/lib/manager/npm/extract/pnpm.spec.ts
+++ b/lib/manager/npm/extract/pnpm.spec.ts
@@ -168,7 +168,7 @@ describe('manager/npm/extract/pnpm', () => {
           (packageFile) =>
             packageFile.packageFile === 'not-matching/b/package.json'
         ).pnpmShrinkwrap
-      ).not.toBeDefined();
+      ).toBeUndefined();
     });
   });
 });
diff --git a/lib/manager/npm/extract/yarn.spec.ts b/lib/manager/npm/extract/yarn.spec.ts
index 94ae015d7baf553b5834d2598a3039f53560f1f3..6cc368a48cd067b21c25f72684dbac4903f832a8 100644
--- a/lib/manager/npm/extract/yarn.spec.ts
+++ b/lib/manager/npm/extract/yarn.spec.ts
@@ -27,7 +27,7 @@ describe('manager/npm/extract/yarn', () => {
       fs.readLocalFile.mockResolvedValueOnce(plocktest1Lock);
       const res = await getYarnLock('package.json');
       expect(res.isYarn1).toBeFalse();
-      expect(res.lockfileVersion).toBe(NaN);
+      expect(res.lockfileVersion).toBeNaN();
       expect(res.lockedVersions).toMatchSnapshot();
       expect(Object.keys(res.lockedVersions)).toHaveLength(8);
     });
diff --git a/lib/manager/npm/post-update/node-version.spec.ts b/lib/manager/npm/post-update/node-version.spec.ts
index c32f94d27116d887e627f3276ce0912e58550251..f2993e14b7bf27f5d84562bd634b4f82d369d32b 100644
--- a/lib/manager/npm/post-update/node-version.spec.ts
+++ b/lib/manager/npm/post-update/node-version.spec.ts
@@ -13,27 +13,27 @@ describe('manager/npm/post-update/node-version', () => {
     fs.readLocalFile.mockResolvedValueOnce(null);
     fs.readLocalFile.mockResolvedValueOnce(null);
     const res = await getNodeConstraint(config);
-    expect(res).toEqual('^12.16.0');
+    expect(res).toBe('^12.16.0');
   });
   it('returns .node-version value', async () => {
     fs.readLocalFile = jest.fn();
     fs.readLocalFile.mockResolvedValueOnce(null);
     fs.readLocalFile.mockResolvedValueOnce('12.16.1\n');
     const res = await getNodeConstraint(config);
-    expect(res).toEqual('12.16.1');
+    expect(res).toBe('12.16.1');
   });
   it('returns .nvmrc value', async () => {
     fs.readLocalFile = jest.fn();
     fs.readLocalFile.mockResolvedValueOnce('12.16.2\n');
     const res = await getNodeConstraint(config);
-    expect(res).toEqual('12.16.2');
+    expect(res).toBe('12.16.2');
   });
   it('ignores unusable ranges in dotfiles', async () => {
     fs.readLocalFile = jest.fn();
     fs.readLocalFile.mockResolvedValueOnce('latest');
     fs.readLocalFile.mockResolvedValueOnce('lts');
     const res = await getNodeConstraint(config);
-    expect(res).toEqual('^12.16.0');
+    expect(res).toBe('^12.16.0');
   });
   it('returns no constraint', async () => {
     fs.readLocalFile = jest.fn();
diff --git a/lib/manager/npm/post-update/npm.spec.ts b/lib/manager/npm/post-update/npm.spec.ts
index f42342037210deef672b4574d543206eaebe21a0..4fd11cf91c3e64b7804d36f0878eb5be4c33f285 100644
--- a/lib/manager/npm/post-update/npm.spec.ts
+++ b/lib/manager/npm/post-update/npm.spec.ts
@@ -40,7 +40,7 @@ describe('manager/npm/post-update/npm', () => {
     );
     expect(fs.readFile).toHaveBeenCalledTimes(2);
     expect(res.error).toBeUndefined();
-    expect(res.lockFile).toEqual('package-lock-contents');
+    expect(res.lockFile).toBe('package-lock-contents');
     expect(execSnapshots).toMatchSnapshot();
   });
   it('massages lock files', async () => {
@@ -86,7 +86,7 @@ describe('manager/npm/post-update/npm', () => {
     );
     expect(fs.readFile).toHaveBeenCalledTimes(2);
     expect(res.error).toBeUndefined();
-    expect(res.lockFile).toEqual('package-lock-contents');
+    expect(res.lockFile).toBe('package-lock-contents');
     expect(execSnapshots).toMatchSnapshot();
   });
   it('performs npm-shrinkwrap.json updates', async () => {
@@ -115,7 +115,7 @@ describe('manager/npm/post-update/npm', () => {
       'utf8'
     );
     expect(res.error).toBeUndefined();
-    expect(res.lockFile).toEqual('package-lock-contents');
+    expect(res.lockFile).toBe('package-lock-contents');
     expect(execSnapshots).toMatchSnapshot();
   });
   it('performs npm-shrinkwrap.json updates (no package-lock.json)', async () => {
@@ -140,7 +140,7 @@ describe('manager/npm/post-update/npm', () => {
       'utf8'
     );
     expect(res.error).toBeUndefined();
-    expect(res.lockFile).toEqual('package-lock-contents');
+    expect(res.lockFile).toBe('package-lock-contents');
     expect(execSnapshots).toMatchSnapshot();
   });
   it('performs full install', async () => {
@@ -156,7 +156,7 @@ describe('manager/npm/post-update/npm', () => {
     );
     expect(fs.readFile).toHaveBeenCalledTimes(2);
     expect(res.error).toBeUndefined();
-    expect(res.lockFile).toEqual('package-lock-contents');
+    expect(res.lockFile).toBe('package-lock-contents');
     expect(execSnapshots).toMatchSnapshot();
   });
   it('runs twice if remediating', async () => {
@@ -172,7 +172,7 @@ describe('manager/npm/post-update/npm', () => {
     );
     expect(fs.readFile).toHaveBeenCalledTimes(2);
     expect(res.error).toBeUndefined();
-    expect(res.lockFile).toEqual('package-lock-contents');
+    expect(res.lockFile).toBe('package-lock-contents');
     expect(execSnapshots).toHaveLength(2);
   });
   it('catches errors', async () => {
@@ -187,7 +187,7 @@ describe('manager/npm/post-update/npm', () => {
     );
     expect(fs.readFile).toHaveBeenCalledTimes(2);
     expect(res.error).toBeTrue();
-    expect(res.lockFile).not.toBeDefined();
+    expect(res.lockFile).toBeUndefined();
     expect(execSnapshots).toMatchSnapshot();
   });
   it('finds npm globally', async () => {
@@ -199,7 +199,7 @@ describe('manager/npm/post-update/npm', () => {
       'package-lock.json'
     );
     expect(fs.readFile).toHaveBeenCalledTimes(2);
-    expect(res.lockFile).toEqual('package-lock-contents');
+    expect(res.lockFile).toBe('package-lock-contents');
     expect(execSnapshots).toMatchSnapshot();
   });
   it('uses docker npm', async () => {
@@ -212,7 +212,7 @@ describe('manager/npm/post-update/npm', () => {
       { binarySource: 'docker', constraints: { npm: '^6.0.0' } }
     );
     expect(fs.readFile).toHaveBeenCalledTimes(2);
-    expect(res.lockFile).toEqual('package-lock-contents');
+    expect(res.lockFile).toBe('package-lock-contents');
     expect(execSnapshots).toMatchSnapshot();
   });
   it('performs lock file maintenance', async () => {
@@ -227,7 +227,7 @@ describe('manager/npm/post-update/npm', () => {
     );
     expect(fs.readFile).toHaveBeenCalledTimes(1);
     expect(fs.remove).toHaveBeenCalledTimes(1);
-    expect(res.lockFile).toEqual('package-lock-contents');
+    expect(res.lockFile).toBe('package-lock-contents');
     expect(execSnapshots).toMatchSnapshot();
   });
 });
diff --git a/lib/manager/npm/post-update/pnpm.spec.ts b/lib/manager/npm/post-update/pnpm.spec.ts
index f3f1002abff218b2b36d4121597952ca7a15c272..14c46e2dcac12296151820474bb35a949c233274 100644
--- a/lib/manager/npm/post-update/pnpm.spec.ts
+++ b/lib/manager/npm/post-update/pnpm.spec.ts
@@ -28,7 +28,7 @@ describe('manager/npm/post-update/pnpm', () => {
     fs.readFile = jest.fn(() => 'package-lock-contents') as never;
     const res = await pnpmHelper.generateLockFile('some-dir', {}, config);
     expect(fs.readFile).toHaveBeenCalledTimes(1);
-    expect(res.lockFile).toEqual('package-lock-contents');
+    expect(res.lockFile).toBe('package-lock-contents');
     expect(execSnapshots).toMatchSnapshot();
   });
   it('catches errors', async () => {
@@ -39,7 +39,7 @@ describe('manager/npm/post-update/pnpm', () => {
     const res = await pnpmHelper.generateLockFile('some-dir', {}, config);
     expect(fs.readFile).toHaveBeenCalledTimes(1);
     expect(res.error).toBeTrue();
-    expect(res.lockFile).not.toBeDefined();
+    expect(res.lockFile).toBeUndefined();
     expect(execSnapshots).toMatchSnapshot();
   });
   it('finds pnpm globally', async () => {
@@ -47,7 +47,7 @@ describe('manager/npm/post-update/pnpm', () => {
     fs.readFile = jest.fn(() => 'package-lock-contents') as never;
     const res = await pnpmHelper.generateLockFile('some-dir', {}, config);
     expect(fs.readFile).toHaveBeenCalledTimes(1);
-    expect(res.lockFile).toEqual('package-lock-contents');
+    expect(res.lockFile).toBe('package-lock-contents');
     expect(execSnapshots).toMatchSnapshot();
   });
   it('performs lock file maintenance', async () => {
@@ -58,7 +58,7 @@ describe('manager/npm/post-update/pnpm', () => {
     ]);
     expect(fs.readFile).toHaveBeenCalledTimes(1);
     expect(fs.remove).toHaveBeenCalledTimes(1);
-    expect(res.lockFile).toEqual('package-lock-contents');
+    expect(res.lockFile).toBe('package-lock-contents');
     expect(execSnapshots).toMatchSnapshot();
   });
 
@@ -73,7 +73,7 @@ describe('manager/npm/post-update/pnpm', () => {
       },
     ]);
     expect(fs.readFile).toHaveBeenCalledTimes(1);
-    expect(res.lockFile).toEqual('package-lock-contents');
+    expect(res.lockFile).toBe('package-lock-contents');
     expect(execSnapshots).toMatchSnapshot();
     // TODO: check docker preCommands
   });
diff --git a/lib/manager/npm/post-update/yarn.spec.ts b/lib/manager/npm/post-update/yarn.spec.ts
index 004297a6cb99253bc1a5cc33f711c997415ab3a0..8c7534524da7bbd948ba420aee91615539d1b261 100644
--- a/lib/manager/npm/post-update/yarn.spec.ts
+++ b/lib/manager/npm/post-update/yarn.spec.ts
@@ -71,7 +71,7 @@ describe('manager/npm/post-update/yarn', () => {
       );
       expect(fs.readFile).toHaveBeenCalledTimes(expectedFsCalls);
       expect(fs.remove).toHaveBeenCalledTimes(0);
-      expect(res.lockFile).toEqual('package-lock-contents');
+      expect(res.lockFile).toBe('package-lock-contents');
       expect(fixSnapshots(execSnapshots)).toMatchSnapshot();
     }
   );
@@ -90,7 +90,7 @@ describe('manager/npm/post-update/yarn', () => {
       skipInstalls: false,
     };
     const res = await yarnHelper.generateLockFile('some-dir', {}, config);
-    expect(res.lockFile).toEqual('package-lock-contents');
+    expect(res.lockFile).toBe('package-lock-contents');
     expect(fixSnapshots(execSnapshots)).toMatchSnapshot();
   });
 
@@ -108,7 +108,7 @@ describe('manager/npm/post-update/yarn', () => {
       managerData: { yarnZeroInstall: true },
     };
     const res = await yarnHelper.generateLockFile('some-dir', {}, config);
-    expect(res.lockFile).toEqual('package-lock-contents');
+    expect(res.lockFile).toBe('package-lock-contents');
     expect(fixSnapshots(execSnapshots)).toMatchSnapshot();
   });
 
@@ -143,7 +143,7 @@ describe('manager/npm/post-update/yarn', () => {
           isLockfileUpdate: true,
         },
       ]);
-      expect(res.lockFile).toEqual('package-lock-contents');
+      expect(res.lockFile).toBe('package-lock-contents');
       expect(fixSnapshots(execSnapshots)).toMatchSnapshot();
     }
   );
@@ -166,7 +166,7 @@ describe('manager/npm/post-update/yarn', () => {
           isLockfileUpdate: true,
         },
       ]);
-      expect(res.lockFile).toEqual('package-lock-contents');
+      expect(res.lockFile).toBe('package-lock-contents');
       expect(fixSnapshots(execSnapshots)).toMatchSnapshot();
     }
   );
@@ -201,7 +201,7 @@ describe('manager/npm/post-update/yarn', () => {
       ]);
       expect(fs.readFile).toHaveBeenCalledTimes(expectedFsCalls);
       expect(fs.remove).toHaveBeenCalledTimes(1);
-      expect(res.lockFile).toEqual('package-lock-contents');
+      expect(res.lockFile).toBe('package-lock-contents');
       expect(fixSnapshots(execSnapshots)).toMatchSnapshot();
     }
   );
@@ -236,7 +236,7 @@ describe('manager/npm/post-update/yarn', () => {
           newValue: '3.0.1',
         },
       ]);
-      expect(res.lockFile).toEqual('package-lock-contents');
+      expect(res.lockFile).toBe('package-lock-contents');
       expect(fixSnapshots(execSnapshots)).toMatchSnapshot();
     }
   );
@@ -252,7 +252,7 @@ describe('manager/npm/post-update/yarn', () => {
     const res = await yarnHelper.generateLockFile('some-dir', {});
     expect(fs.readFile).toHaveBeenCalledTimes(2);
     expect(res.error).toBeTrue();
-    expect(res.lockFile).not.toBeDefined();
+    expect(res.lockFile).toBeUndefined();
     expect(fixSnapshots(execSnapshots)).toMatchSnapshot();
   });
 
diff --git a/lib/manager/npm/range.spec.ts b/lib/manager/npm/range.spec.ts
index 89bda5778ae90695c7b55fee6466fd0168c73222..2508e6b94c5b5ff098e19b456a7f3ef88cab5745 100644
--- a/lib/manager/npm/range.spec.ts
+++ b/lib/manager/npm/range.spec.ts
@@ -4,14 +4,14 @@ import { getRangeStrategy } from '.';
 describe('manager/npm/range', () => {
   it('returns same if not auto', () => {
     const config: RangeConfig = { rangeStrategy: 'widen' };
-    expect(getRangeStrategy(config)).toEqual('widen');
+    expect(getRangeStrategy(config)).toBe('widen');
   });
   it('pins devDependencies', () => {
     const config: RangeConfig = {
       rangeStrategy: 'auto',
       depType: 'devDependencies',
     };
-    expect(getRangeStrategy(config)).toEqual('pin');
+    expect(getRangeStrategy(config)).toBe('pin');
   });
   it('pins app dependencies', () => {
     const config: RangeConfig = {
@@ -19,14 +19,14 @@ describe('manager/npm/range', () => {
       depType: 'dependencies',
       packageJsonType: 'app',
     };
-    expect(getRangeStrategy(config)).toEqual('pin');
+    expect(getRangeStrategy(config)).toBe('pin');
   });
   it('widens peerDependencies', () => {
     const config: RangeConfig = {
       rangeStrategy: 'auto',
       depType: 'peerDependencies',
     };
-    expect(getRangeStrategy(config)).toEqual('widen');
+    expect(getRangeStrategy(config)).toBe('widen');
   });
   it('widens complex ranges', () => {
     const config: RangeConfig = {
@@ -34,7 +34,7 @@ describe('manager/npm/range', () => {
       depType: 'dependencies',
       currentValue: '^1.6.0 || ^2.0.0',
     };
-    expect(getRangeStrategy(config)).toEqual('widen');
+    expect(getRangeStrategy(config)).toBe('widen');
   });
   it('widens complex bump', () => {
     const config: RangeConfig = {
@@ -42,13 +42,13 @@ describe('manager/npm/range', () => {
       depType: 'dependencies',
       currentValue: '^1.6.0 || ^2.0.0',
     };
-    expect(getRangeStrategy(config)).toEqual('widen');
+    expect(getRangeStrategy(config)).toBe('widen');
   });
   it('defaults to replace', () => {
     const config: RangeConfig = {
       rangeStrategy: 'auto',
       depType: 'dependencies',
     };
-    expect(getRangeStrategy(config)).toEqual('replace');
+    expect(getRangeStrategy(config)).toBe('replace');
   });
 });
diff --git a/lib/manager/npm/update/dependency/index.spec.ts b/lib/manager/npm/update/dependency/index.spec.ts
index f80a404095cb9b6a60d5f02625461e417efd0f2a..fda93a11ffc8ddca597a8623fb87c70fcbb29e55 100644
--- a/lib/manager/npm/update/dependency/index.spec.ts
+++ b/lib/manager/npm/update/dependency/index.spec.ts
@@ -113,8 +113,8 @@ describe('manager/npm/update/dependency/index', () => {
         fileContent: input01Content,
         upgrade,
       });
-      expect(JSON.parse(testContent).dependencies.config).toEqual('1.22.0');
-      expect(JSON.parse(testContent).resolutions.config).toEqual('1.22.0');
+      expect(JSON.parse(testContent).dependencies.config).toBe('1.22.0');
+      expect(JSON.parse(testContent).resolutions.config).toBe('1.22.0');
     });
     it('updates glob resolutions', () => {
       const upgrade = {
@@ -126,10 +126,8 @@ describe('manager/npm/update/dependency/index', () => {
         fileContent: input01GlobContent,
         upgrade,
       });
-      expect(JSON.parse(testContent).dependencies.config).toEqual('1.22.0');
-      expect(JSON.parse(testContent).resolutions['**/config']).toEqual(
-        '1.22.0'
-      );
+      expect(JSON.parse(testContent).dependencies.config).toBe('1.22.0');
+      expect(JSON.parse(testContent).resolutions['**/config']).toBe('1.22.0');
     });
     it('updates glob resolutions without dep', () => {
       const upgrade = {
@@ -142,7 +140,7 @@ describe('manager/npm/update/dependency/index', () => {
         fileContent: input01Content,
         upgrade,
       });
-      expect(JSON.parse(testContent).resolutions['**/@angular/cli']).toEqual(
+      expect(JSON.parse(testContent).resolutions['**/@angular/cli']).toBe(
         '8.1.0'
       );
     });
diff --git a/lib/manager/npm/update/locked-dependency/index.spec.ts b/lib/manager/npm/update/locked-dependency/index.spec.ts
index 910b6713d746ed1600fb4d5a65d43ea2ffa0a10d..2e9431873381e16653fdff4d4b2d998c72f03456 100644
--- a/lib/manager/npm/update/locked-dependency/index.spec.ts
+++ b/lib/manager/npm/update/locked-dependency/index.spec.ts
@@ -77,7 +77,7 @@ describe('manager/npm/update/locked-dependency/index', () => {
       });
       expect(
         JSON.parse(res['package-lock.json']).dependencies.mime.version
-      ).toEqual('1.2.12');
+      ).toBe('1.2.12');
     });
     it('fails to remediate if parent dep cannot support', async () => {
       const acceptsModified = clone(acceptsJson);
@@ -105,7 +105,7 @@ describe('manager/npm/update/locked-dependency/index', () => {
       const res = await updateLockedDependency(config);
       expect(res['package.json']).toContain('"express": "4.1.0"');
       const packageLock = JSON.parse(res['package-lock.json']);
-      expect(packageLock.dependencies.express.version).toEqual('4.1.0');
+      expect(packageLock.dependencies.express.version).toBe('4.1.0');
     });
     it('remediates mime', async () => {
       config.depName = 'mime';
@@ -129,8 +129,8 @@ describe('manager/npm/update/locked-dependency/index', () => {
         .reply(200, typeIsJson);
       const res = await updateLockedDependency(config);
       const packageLock = JSON.parse(res['package-lock.json']);
-      expect(packageLock.dependencies.mime.version).toEqual('1.4.1');
-      expect(packageLock.dependencies.express.version).toEqual('4.16.0');
+      expect(packageLock.dependencies.mime.version).toBe('1.4.1');
+      expect(packageLock.dependencies.express.version).toBe('4.16.0');
       expect(httpMock.getTrace()).toMatchSnapshot();
     });
   });
diff --git a/lib/manager/npm/update/locked-dependency/parent-version.spec.ts b/lib/manager/npm/update/locked-dependency/parent-version.spec.ts
index b69240da05c2cd8090009dab7c429cb76f2ac4af..5ecfd4fee648f799f49b4140c3eafcb33f1d2096 100644
--- a/lib/manager/npm/update/locked-dependency/parent-version.spec.ts
+++ b/lib/manager/npm/update/locked-dependency/parent-version.spec.ts
@@ -28,7 +28,7 @@ describe('manager/npm/update/locked-dependency/parent-version', () => {
 
       expect(
         await findFirstParentVersion('express', '4.0.0', 'send', '0.11.1')
-      ).toEqual('4.11.1');
+      ).toBe('4.11.1');
       expect(httpMock.getTrace()).toMatchSnapshot();
     });
 
@@ -52,7 +52,7 @@ describe('manager/npm/update/locked-dependency/parent-version', () => {
           'buffer-crc32',
           '10.0.0'
         )
-      ).toEqual('4.9.1');
+      ).toBe('4.9.1');
       expect(httpMock.getTrace()).toMatchSnapshot();
     });
 
@@ -73,7 +73,7 @@ describe('manager/npm/update/locked-dependency/parent-version', () => {
 
       expect(
         await findFirstParentVersion('express', '4.0.0', 'qs', '6.0.4')
-      ).toEqual('4.14.0');
+      ).toBe('4.14.0');
       expect(httpMock.getTrace()).toMatchSnapshot();
     });
 
@@ -93,7 +93,7 @@ describe('manager/npm/update/locked-dependency/parent-version', () => {
 
       expect(
         await findFirstParentVersion('express', '4.16.1', 'type-is', '1.2.1')
-      ).toEqual('4.16.1');
+      ).toBe('4.16.1');
       expect(httpMock.getTrace()).toMatchSnapshot();
     });
 
diff --git a/lib/manager/pip_requirements/range.spec.ts b/lib/manager/pip_requirements/range.spec.ts
index 00d2861330cb46f2166c4a0cea2797d7bf2bcc5a..80fbe2b14a0fbae40a37f66135affe2ee410391e 100644
--- a/lib/manager/pip_requirements/range.spec.ts
+++ b/lib/manager/pip_requirements/range.spec.ts
@@ -4,10 +4,10 @@ import { getRangeStrategy } from '.';
 describe('manager/pip_requirements/range', () => {
   it('returns same if not auto', () => {
     const config: RangeConfig = { rangeStrategy: 'widen' };
-    expect(getRangeStrategy(config)).toEqual('widen');
+    expect(getRangeStrategy(config)).toBe('widen');
   });
   it('pins if auto', () => {
     const config: RangeConfig = { rangeStrategy: 'auto' };
-    expect(getRangeStrategy(config)).toEqual('pin');
+    expect(getRangeStrategy(config)).toBe('pin');
   });
 });
diff --git a/lib/manager/pipenv/extract.spec.ts b/lib/manager/pipenv/extract.spec.ts
index 88804599b428df090e71b17ff7a4147ff90abcd0..1e5b711304d6a5e1bf3ac3bfcc35db95a7f5774d 100644
--- a/lib/manager/pipenv/extract.spec.ts
+++ b/lib/manager/pipenv/extract.spec.ts
@@ -83,24 +83,24 @@ describe('manager/pipenv/extract', () => {
         '[packages]\r\nfoo = "==1.0.0"\r\n' +
         '[requires]\r\npython_version = "3.8"';
       const res = await extractPackageFile(content, 'Pipfile');
-      expect(res.constraints.python).toEqual('== 3.8.*');
+      expect(res.constraints.python).toBe('== 3.8.*');
     });
     it('gets python constraint from python_full_version', async () => {
       const content =
         '[packages]\r\nfoo = "==1.0.0"\r\n' +
         '[requires]\r\npython_full_version = "3.8.6"';
       const res = await extractPackageFile(content, 'Pipfile');
-      expect(res.constraints.python).toEqual('== 3.8.6');
+      expect(res.constraints.python).toBe('== 3.8.6');
     });
     it('gets pipenv constraint from packages', async () => {
       const content = '[packages]\r\npipenv = "==2020.8.13"';
       const res = await extractPackageFile(content, 'Pipfile');
-      expect(res.constraints.pipenv).toEqual('==2020.8.13');
+      expect(res.constraints.pipenv).toBe('==2020.8.13');
     });
     it('gets pipenv constraint from dev-packages', async () => {
       const content = '[dev-packages]\r\npipenv = "==2020.8.13"';
       const res = await extractPackageFile(content, 'Pipfile');
-      expect(res.constraints.pipenv).toEqual('==2020.8.13');
+      expect(res.constraints.pipenv).toBe('==2020.8.13');
     });
   });
 });
diff --git a/lib/manager/range.spec.ts b/lib/manager/range.spec.ts
index 4726cc910e5999254615afce51c46ccc32fa5f4c..943901f89a50186f6ae84ca79bf624bb3aeee71c 100644
--- a/lib/manager/range.spec.ts
+++ b/lib/manager/range.spec.ts
@@ -7,7 +7,7 @@ describe('manager/range', () => {
       manager: 'npm',
       rangeStrategy: 'widen',
     };
-    expect(getRangeStrategy(config)).toEqual('widen');
+    expect(getRangeStrategy(config)).toBe('widen');
   });
   it('returns manager strategy', () => {
     const config: RangeConfig = {
@@ -16,20 +16,20 @@ describe('manager/range', () => {
       depType: 'dependencies',
       packageJsonType: 'app',
     };
-    expect(getRangeStrategy(config)).toEqual('pin');
+    expect(getRangeStrategy(config)).toBe('pin');
   });
   it('defaults to replace', () => {
     const config: RangeConfig = {
       manager: 'circleci',
       rangeStrategy: 'auto',
     };
-    expect(getRangeStrategy(config)).toEqual('replace');
+    expect(getRangeStrategy(config)).toBe('replace');
   });
   it('returns rangeStrategy if not auto', () => {
     const config: RangeConfig = {
       manager: 'circleci',
       rangeStrategy: 'future',
     };
-    expect(getRangeStrategy(config)).toEqual('future');
+    expect(getRangeStrategy(config)).toBe('future');
   });
 });
diff --git a/lib/manager/regex/index.spec.ts b/lib/manager/regex/index.spec.ts
index 62e3fdc024a24150933f5c463235daa3daf04a49..480af832794e1135d0b4b9a01891645a7234bbbe 100644
--- a/lib/manager/regex/index.spec.ts
+++ b/lib/manager/regex/index.spec.ts
@@ -30,10 +30,10 @@ describe('manager/regex/index', () => {
     );
     expect(res).toMatchSnapshot();
     expect(res.deps).toHaveLength(8);
-    expect(res.deps.find((dep) => dep.depName === 'yarn').versioning).toEqual(
+    expect(res.deps.find((dep) => dep.depName === 'yarn').versioning).toBe(
       'semver'
     );
-    expect(res.deps.find((dep) => dep.depName === 'gradle').versioning).toEqual(
+    expect(res.deps.find((dep) => dep.depName === 'gradle').versioning).toBe(
       'maven'
     );
     expect(res.deps.filter((dep) => dep.depType === 'final')).toHaveLength(8);
@@ -80,7 +80,7 @@ describe('manager/regex/index', () => {
       res.deps.find(
         (dep) => dep.depName === 'openresty/headers-more-nginx-module'
       ).extractVersion
-    ).toEqual('^v(?<version>.*)$');
+    ).toBe('^v(?<version>.*)$');
   });
   it('extracts registryUrl', async () => {
     const config = {
@@ -165,8 +165,8 @@ describe('manager/regex/index', () => {
     expect(res.deps).toHaveLength(2);
     expect(
       res.deps.find((dep) => dep.depName === 'nodejs/node').versioning
-    ).toEqual('node');
-    expect(res.deps.find((dep) => dep.depName === 'gradle').versioning).toEqual(
+    ).toBe('node');
+    expect(res.deps.find((dep) => dep.depName === 'gradle').versioning).toBe(
       'maven'
     );
   });
@@ -225,7 +225,7 @@ describe('manager/regex/index', () => {
       config
     );
     expect(res.deps).toHaveLength(1);
-    expect(res.deps[0].depName).toEqual('docker.io/prom/prometheus');
+    expect(res.deps[0].depName).toBe('docker.io/prom/prometheus');
     expect(res).toMatchSnapshot();
   });
 
diff --git a/lib/manager/setup-cfg/range.spec.ts b/lib/manager/setup-cfg/range.spec.ts
index 5f6cc8796412cfd24526ef8a4c708aa66dd614d2..dd7e15f55e9a2d51e60c8c989ee6599b8dc44f71 100644
--- a/lib/manager/setup-cfg/range.spec.ts
+++ b/lib/manager/setup-cfg/range.spec.ts
@@ -4,10 +4,10 @@ import { getRangeStrategy } from '.';
 describe('manager/setup-cfg/range', () => {
   it('returns same if not auto', () => {
     const config: RangeConfig = { rangeStrategy: 'widen' };
-    expect(getRangeStrategy(config)).toEqual('widen');
+    expect(getRangeStrategy(config)).toBe('widen');
   });
   it('replaces if auto', () => {
     const config: RangeConfig = { rangeStrategy: 'auto' };
-    expect(getRangeStrategy(config)).toEqual('replace');
+    expect(getRangeStrategy(config)).toBe('replace');
   });
 });
diff --git a/lib/platform/azure/util.spec.ts b/lib/platform/azure/util.spec.ts
index 9cdd579a7a54813964fd131726841456c97be169..8dad90be812e264a5bdd3418108713502363d7a1 100644
--- a/lib/platform/azure/util.spec.ts
+++ b/lib/platform/azure/util.spec.ts
@@ -117,7 +117,7 @@ describe('platform/azure/util', () => {
   describe('streamToString', () => {
     it('converts Readable stream to string', async () => {
       const res = await streamToString(Readable.from('foobar'));
-      expect(res).toEqual('foobar');
+      expect(res).toBe('foobar');
     });
     it('handles error', async () => {
       const stream = Readable.from('foobar');
diff --git a/lib/platform/bitbucket/index.spec.ts b/lib/platform/bitbucket/index.spec.ts
index 3abe950b01aa589279db601f53d8f0e8233c7914..2f8bda30a35b932dd20b2441a0ef52b6d4d1b322 100644
--- a/lib/platform/bitbucket/index.spec.ts
+++ b/lib/platform/bitbucket/index.spec.ts
@@ -431,7 +431,7 @@ describe('platform/bitbucket/index', () => {
         .reply(200);
       expect(
         await bitbucket.ensureIssue({ title: 'title', body: 'body' })
-      ).toEqual('updated');
+      ).toBe('updated');
       expect(httpMock.getTrace()).toMatchSnapshot();
     });
     it('creates new issue', async () => {
@@ -456,7 +456,7 @@ describe('platform/bitbucket/index', () => {
           reuseTitle: 'old-title',
           body: 'body',
         })
-      ).toEqual('created');
+      ).toBe('created');
       expect(httpMock.getTrace()).toMatchSnapshot();
     });
     it('noop for existing issue', async () => {
diff --git a/lib/platform/gitea/gitea-helper.spec.ts b/lib/platform/gitea/gitea-helper.spec.ts
index 9011dd0a6d561a7a5e596566e2dbde5ba2178daf..0b27f26fc0992775fca6a2b8d58cdd37b9122d5a 100644
--- a/lib/platform/gitea/gitea-helper.spec.ts
+++ b/lib/platform/gitea/gitea-helper.spec.ts
@@ -692,7 +692,7 @@ describe('platform/gitea/gitea-helper', () => {
         mockRepo.full_name,
         mockBranch.name
       );
-      expect(res.worstStatus).not.toEqual('unknown');
+      expect(res.worstStatus).not.toBe('unknown');
       expect(res.statuses).toEqual([mockCommitStatus, otherMockCommitStatus]);
       expect(httpMock.getTrace()).toMatchSnapshot();
     });
diff --git a/lib/platform/gitea/index.spec.ts b/lib/platform/gitea/index.spec.ts
index 5b41b8fb95c59fefc5d2cc841a52abd49fe2e6f5..01af9de574a19b4cc1305659f5bbc5f8a77a7b0e 100644
--- a/lib/platform/gitea/index.spec.ts
+++ b/lib/platform/gitea/index.spec.ts
@@ -892,7 +892,7 @@ describe('platform/gitea/index', () => {
           branchName: 'some-branch',
           id: 1,
         })
-      ).toEqual(true);
+      ).toBe(true);
       expect(helper.mergePR).toHaveBeenCalledTimes(1);
       expect(helper.mergePR).toHaveBeenCalledWith(
         mockRepo.full_name,
@@ -910,7 +910,7 @@ describe('platform/gitea/index', () => {
           branchName: 'some-branch',
           id: 1,
         })
-      ).toEqual(false);
+      ).toBe(false);
     });
   });
 
@@ -973,7 +973,7 @@ describe('platform/gitea/index', () => {
       await initFakeRepo();
       const res = await gitea.ensureIssue(mockIssue);
 
-      expect(res).toEqual('created');
+      expect(res).toBe('created');
       expect(helper.createIssue).toHaveBeenCalledTimes(1);
       expect(helper.createIssue).toHaveBeenCalledWith(mockRepo.full_name, {
         body: mockIssue.body,
@@ -1005,7 +1005,7 @@ describe('platform/gitea/index', () => {
       await initFakeRepo();
       const res = await gitea.ensureIssue(mockIssue);
 
-      expect(res).toEqual('created');
+      expect(res).toBe('created');
       expect(helper.createIssue).toHaveBeenCalledTimes(1);
       expect(helper.createIssue).toHaveBeenCalledWith(mockRepo.full_name, {
         body: mockIssue.body,
@@ -1027,7 +1027,7 @@ describe('platform/gitea/index', () => {
         once: false,
       });
 
-      expect(res).toEqual('updated');
+      expect(res).toBe('updated');
       expect(helper.updateIssue).toHaveBeenCalledTimes(1);
       expect(helper.updateIssue).toHaveBeenCalledWith(
         mockRepo.full_name,
@@ -1066,7 +1066,7 @@ describe('platform/gitea/index', () => {
         labels: ['Renovate', 'Maintenance'],
       });
 
-      expect(res).toEqual('updated');
+      expect(res).toBe('updated');
       expect(helper.updateIssue).toHaveBeenCalledTimes(1);
       expect(helper.updateIssueLabels).toHaveBeenCalledTimes(0);
     });
@@ -1097,7 +1097,7 @@ describe('platform/gitea/index', () => {
         labels: ['Renovate', 'Maintenance'],
       });
 
-      expect(res).toEqual('updated');
+      expect(res).toBe('updated');
       expect(helper.updateIssue).toHaveBeenCalledTimes(1);
       expect(helper.updateIssueLabels).toHaveBeenCalledTimes(1);
       expect(helper.updateIssueLabels).toHaveBeenCalledWith(
@@ -1136,7 +1136,7 @@ describe('platform/gitea/index', () => {
         labels: ['Renovate', 'Maintenance'],
       });
 
-      expect(res).toEqual('updated');
+      expect(res).toBe('updated');
       expect(helper.updateIssue).toHaveBeenCalledTimes(1);
       expect(helper.updateIssueLabels).toHaveBeenCalledTimes(1);
       expect(helper.updateIssueLabels).toHaveBeenCalledWith(
@@ -1161,7 +1161,7 @@ describe('platform/gitea/index', () => {
         once: false,
       });
 
-      expect(res).toEqual('updated');
+      expect(res).toBe('updated');
       expect(helper.updateIssue).toHaveBeenCalledTimes(1);
       expect(helper.updateIssue).toHaveBeenCalledWith(
         mockRepo.full_name,
@@ -1296,7 +1296,7 @@ describe('platform/gitea/index', () => {
 
   describe('getRepoForceRebase', () => {
     it('should return false - unsupported by platform', async () => {
-      expect(await gitea.getRepoForceRebase()).toEqual(false);
+      expect(await gitea.getRepoForceRebase()).toBe(false);
     });
   });
 
@@ -1315,7 +1315,7 @@ describe('platform/gitea/index', () => {
       });
       const body = '### other-topic\n\nother-content';
 
-      expect(res).toEqual(true);
+      expect(res).toBe(true);
       expect(helper.updateComment).not.toHaveBeenCalled();
       expect(helper.createComment).toHaveBeenCalledTimes(1);
       expect(helper.createComment).toHaveBeenCalledWith(
@@ -1338,7 +1338,7 @@ describe('platform/gitea/index', () => {
         topic: undefined,
       });
 
-      expect(res).toEqual(true);
+      expect(res).toBe(true);
       expect(helper.updateComment).not.toHaveBeenCalled();
       expect(helper.createComment).toHaveBeenCalledTimes(1);
       expect(helper.createComment).toHaveBeenCalledWith(
@@ -1362,7 +1362,7 @@ describe('platform/gitea/index', () => {
       });
       const body = '### some-topic\n\nsome-new-content';
 
-      expect(res).toEqual(true);
+      expect(res).toBe(true);
       expect(helper.createComment).not.toHaveBeenCalled();
       expect(helper.updateComment).toHaveBeenCalledTimes(1);
       expect(helper.updateComment).toHaveBeenCalledWith(
@@ -1381,7 +1381,7 @@ describe('platform/gitea/index', () => {
         content: 'some-content',
       });
 
-      expect(res).toEqual(true);
+      expect(res).toBe(true);
       expect(helper.createComment).not.toHaveBeenCalled();
       expect(helper.updateComment).not.toHaveBeenCalled();
     });
@@ -1395,7 +1395,7 @@ describe('platform/gitea/index', () => {
         content: 'some-content',
       });
 
-      expect(res).toEqual(false);
+      expect(res).toBe(false);
       expect(logger.warn).toHaveBeenCalledTimes(1);
     });
   });
diff --git a/lib/platform/github/index.spec.ts b/lib/platform/github/index.spec.ts
index 874e099f6174baa0002da4d28ce977aa48485813..1f4cb3419dfc62e0462b5cf43db18e2a20c52149 100644
--- a/lib/platform/github/index.spec.ts
+++ b/lib/platform/github/index.spec.ts
@@ -1104,7 +1104,7 @@ describe('platform/github/index', () => {
         title: 'new-title',
         body: 'new-content',
       });
-      expect(res).toEqual('created');
+      expect(res).toBe('created');
       expect(httpMock.getTrace()).toMatchSnapshot();
     });
     it('creates issue if not ensuring only once', async () => {
@@ -1213,7 +1213,7 @@ describe('platform/github/index', () => {
         body: 'new-content',
         labels: ['Renovate', 'Maintenance'],
       });
-      expect(res).toEqual('created');
+      expect(res).toBe('created');
       expect(httpMock.getTrace()).toMatchSnapshot();
     });
 
@@ -1304,7 +1304,7 @@ describe('platform/github/index', () => {
         reuseTitle: 'title-2',
         body: 'newer-content',
       });
-      expect(res).toEqual('updated');
+      expect(res).toBe('updated');
       expect(httpMock.getTrace()).toMatchSnapshot();
     });
 
@@ -1349,7 +1349,7 @@ describe('platform/github/index', () => {
         body: 'newer-content',
         labels: ['Renovate', 'Maintenance'],
       });
-      expect(res).toEqual('updated');
+      expect(res).toBe('updated');
       expect(httpMock.getTrace()).toMatchSnapshot();
     });
 
@@ -1471,7 +1471,7 @@ describe('platform/github/index', () => {
         once: false,
         shouldReOpen: false,
       });
-      expect(res).toEqual('created');
+      expect(res).toBe('created');
       expect(httpMock.getTrace()).toMatchSnapshot();
     });
     it('does not create issue if reopen flag false and issue is already open', async () => {
@@ -1816,7 +1816,7 @@ describe('platform/github/index', () => {
       });
       expect(res).toBeDefined();
       res = await github.findPr({ branchName: 'branch-b' });
-      expect(res).not.toBeDefined();
+      expect(res).toBeUndefined();
       expect(httpMock.getTrace()).toMatchSnapshot();
     });
   });
diff --git a/lib/platform/gitlab/index.spec.ts b/lib/platform/gitlab/index.spec.ts
index 4f3107759acb3f254034400d600ff6a3511c86bd..72e26a2970a9031a1aef20144d5a76663d35c384 100644
--- a/lib/platform/gitlab/index.spec.ts
+++ b/lib/platform/gitlab/index.spec.ts
@@ -786,7 +786,7 @@ describe('platform/gitlab/index', () => {
         title: 'new-title',
         body: 'new-content',
       });
-      expect(res).toEqual('created');
+      expect(res).toBe('created');
       expect(httpMock.getTrace()).toMatchSnapshot();
     });
 
@@ -804,7 +804,7 @@ describe('platform/gitlab/index', () => {
         body: 'new-content',
         labels: ['Renovate', 'Maintenance'],
       });
-      expect(res).toEqual('created');
+      expect(res).toBe('created');
       expect(httpMock.getTrace()).toMatchSnapshot();
     });
 
@@ -832,7 +832,7 @@ describe('platform/gitlab/index', () => {
         title: 'title-2',
         body: 'newer-content',
       });
-      expect(res).toEqual('updated');
+      expect(res).toBe('updated');
       expect(httpMock.getTrace()).toMatchSnapshot();
     });
 
@@ -861,7 +861,7 @@ describe('platform/gitlab/index', () => {
         body: 'newer-content',
         labels: ['Renovate', 'Maintenance'],
       });
-      expect(res).toEqual('updated');
+      expect(res).toBe('updated');
       expect(httpMock.getTrace()).toMatchSnapshot();
     });
 
diff --git a/lib/platform/utils/pr-body.spec.ts b/lib/platform/utils/pr-body.spec.ts
index 710a4ceda601dda311a9804243b7ec629d5d14c2..45bb155e7f5f0d9f9061ad7f598c32784d802e42 100644
--- a/lib/platform/utils/pr-body.spec.ts
+++ b/lib/platform/utils/pr-body.spec.ts
@@ -8,7 +8,7 @@ describe('platform/utils/pr-body', () => {
     it('truncates to 1000', () => {
       const body = smartTruncate(prBody, 1000);
       expect(body).toMatchSnapshot();
-      expect(body.length < prBody.length).toEqual(true);
+      expect(body.length < prBody.length).toBe(true);
     });
 
     it('truncates to 300 not smart', () => {
@@ -19,7 +19,7 @@ describe('platform/utils/pr-body', () => {
 
     it('truncates to 10', () => {
       const body = smartTruncate('Lorem ipsum dolor sit amet', 10);
-      expect(body).toEqual('Lorem ipsu');
+      expect(body).toBe('Lorem ipsu');
     });
 
     it('does not truncate', () => {
diff --git a/lib/util/cache/memory/index.spec.ts b/lib/util/cache/memory/index.spec.ts
index 6d4fcdb2fdbdcf95d494fc4ba15b8a97184d5d9a..09abf21e1f9c55978521c79d46316e4b71f003f2 100644
--- a/lib/util/cache/memory/index.spec.ts
+++ b/lib/util/cache/memory/index.spec.ts
@@ -7,7 +7,7 @@ describe('util/cache/memory/index', () => {
   it('sets and gets repo cache', () => {
     memCache.init();
     memCache.set('key2', 'value');
-    expect(memCache.get('key2')).toEqual('value');
+    expect(memCache.get('key2')).toBe('value');
   });
   it('resets', () => {
     memCache.init();
diff --git a/lib/util/cache/package/decorator.spec.ts b/lib/util/cache/package/decorator.spec.ts
index 5921bc34651c6171e2447da032543e53f565217d..dd9f27244d0d1538b30acf37198293023cc1b903 100644
--- a/lib/util/cache/package/decorator.spec.ts
+++ b/lib/util/cache/package/decorator.spec.ts
@@ -29,7 +29,7 @@ describe('util/cache/package/decorator', () => {
     }
     const myClass = new MyClass();
     expect(await myClass.getNumber()).toEqual(await myClass.getNumber());
-    expect(await myClass.getNumber()).not.toBeUndefined();
+    expect(await myClass.getNumber()).toBeDefined();
     expect(spy).toHaveBeenCalledTimes(1);
   });
 
@@ -44,8 +44,8 @@ describe('util/cache/package/decorator', () => {
     const myClass = new MyClass();
     expect(await myClass.getString('null', null)).toBeNull();
     expect(await myClass.getString('null', null)).toBeNull();
-    expect(await myClass.getString('test', 'test')).toEqual('test');
-    expect(await myClass.getString('test', 'test')).not.toBeUndefined();
+    expect(await myClass.getString('test', 'test')).toBe('test');
+    expect(await myClass.getString('test', 'test')).toBeDefined();
     expect(spy).toHaveBeenCalledTimes(2);
   });
 
@@ -82,7 +82,7 @@ describe('util/cache/package/decorator', () => {
     expect(await myClass.getNumber(getReleasesConfig)).toEqual(
       await myClass.getNumber(getReleasesConfig)
     );
-    expect(await myClass.getNumber(getReleasesConfig)).not.toBeUndefined();
+    expect(await myClass.getNumber(getReleasesConfig)).toBeDefined();
     expect(spy).toHaveBeenCalledTimes(1);
   });
 });
diff --git a/lib/util/emoji.spec.ts b/lib/util/emoji.spec.ts
index 969563e339565ae04e3fe140c8a879f94d8a1e38..d663320fe69593a175a32a123f1b18709d4360ae 100644
--- a/lib/util/emoji.spec.ts
+++ b/lib/util/emoji.spec.ts
@@ -8,7 +8,7 @@ describe('util/emoji', () => {
 
   describe('emojify', () => {
     it('encodes known shortcodes', () => {
-      expect(emojify('Let it :bee:')).toEqual('Let it 🐝');
+      expect(emojify('Let it :bee:')).toBe('Let it 🐝');
     });
 
     it('encodes aliases', () => {
@@ -18,12 +18,12 @@ describe('util/emoji', () => {
     });
 
     it('omits unknown shortcodes', () => {
-      expect(emojify(':foo: :bar: :bee:')).toEqual(':foo: :bar: 🐝');
+      expect(emojify(':foo: :bar: :bee:')).toBe(':foo: :bar: 🐝');
     });
 
     it('does not encode when config option is disabled', () => {
       setEmojiConfig({ unicodeEmoji: false });
-      expect(emojify('Let it :bee:')).toEqual('Let it :bee:');
+      expect(emojify('Let it :bee:')).toBe('Let it :bee:');
     });
   });
 
@@ -51,7 +51,7 @@ describe('util/emoji', () => {
 
       it('uses replacement character', () => {
         setEmojiConfig({ unicodeEmoji: false });
-        expect(unemojify(unsupported)).toEqual('�');
+        expect(unemojify(unsupported)).toBe('�');
       });
     });
   });
diff --git a/lib/util/git/index.spec.ts b/lib/util/git/index.spec.ts
index b2b27b4e31f8f7447c16328bb1a4dfa89c1b4415..83aff7d3e2196af75a48684cec0c5330c51b3d61 100644
--- a/lib/util/git/index.spec.ts
+++ b/lib/util/git/index.spec.ts
@@ -449,14 +449,14 @@ describe('util/git/index', () => {
           hostname: 'host',
           repository: 'some/repo',
         })
-      ).toEqual('https://user:pass@host/some/repo.git');
+      ).toBe('https://user:pass@host/some/repo.git');
       expect(
         getUrl({
           auth: 'user:pass',
           hostname: 'host',
           repository: 'some/repo',
         })
-      ).toEqual('https://user:pass@host/some/repo.git');
+      ).toBe('https://user:pass@host/some/repo.git');
     });
 
     it('returns ssh url', () => {
@@ -467,7 +467,7 @@ describe('util/git/index', () => {
           hostname: 'host',
           repository: 'some/repo',
         })
-      ).toEqual('git@host:some/repo.git');
+      ).toBe('git@host:some/repo.git');
     });
   });
 
diff --git a/lib/util/host-rules.spec.ts b/lib/util/host-rules.spec.ts
index c60d24d9b51fea336fcc84555670cee99cd786a2..9f64b19c6311aeaa94c4211f24b620e386b443fc 100644
--- a/lib/util/host-rules.spec.ts
+++ b/lib/util/host-rules.spec.ts
@@ -97,10 +97,10 @@ describe('util/host-rules', () => {
       expect(
         find({ hostType: datasourceNuget.id, url: 'https://api.github.com' })
           .token
-      ).toEqual('def');
+      ).toBe('def');
       expect(
         find({ hostType: datasourceNuget.id, url: 'https://github.com' }).token
-      ).toEqual('def');
+      ).toBe('def');
       expect(
         find({ hostType: datasourceNuget.id, url: 'https://apigithub.com' })
           .token
@@ -131,7 +131,7 @@ describe('util/host-rules', () => {
           hostType: PlatformId.Github,
           url: 'https://api.github.com/repos/org-b/someRepo/tags?per_page=100',
         }).token
-      ).toEqual('def');
+      ).toBe('def');
     });
 
     it('matches for several hostTypes when no hostType rule is configured', () => {
@@ -144,13 +144,13 @@ describe('util/host-rules', () => {
           hostType: PlatformId.Github,
           url: 'https://api.github.com/repos/org-b/someRepo/tags?per_page=100',
         }).token
-      ).toEqual('abc');
+      ).toBe('abc');
       expect(
         find({
           hostType: 'github-releases',
           url: 'https://api.github.com/repos/org-b/someRepo/tags?per_page=100',
         }).token
-      ).toEqual('abc');
+      ).toBe('abc');
     });
 
     it('matches if hostType is configured and host rule is filtered with datasource', () => {
@@ -169,7 +169,7 @@ describe('util/host-rules', () => {
           hostType: 'github-tags',
           url: 'https://api.github.com/repos/org-b/someRepo/tags?per_page=100',
         }).token
-      ).toEqual('def');
+      ).toBe('def');
     });
 
     it('matches on hostName', () => {
@@ -188,21 +188,21 @@ describe('util/host-rules', () => {
         token: 'def',
       });
       expect(find({ url: 'https://api.domain.com' }).token).toBeUndefined();
-      expect(find({ url: 'https://domain.com' }).token).toEqual('def');
+      expect(find({ url: 'https://domain.com' }).token).toBe('def');
       expect(
         find({
           hostType: datasourceNuget.id,
           url: 'https://domain.com/renovatebot',
         }).token
-      ).toEqual('def');
+      ).toBe('def');
     });
     it('matches on matchHost without protocol', () => {
       add({
         matchHost: 'domain.com',
         token: 'def',
       });
-      expect(find({ url: 'https://api.domain.com' }).token).toEqual('def');
-      expect(find({ url: 'https://domain.com' }).token).toEqual('def');
+      expect(find({ url: 'https://api.domain.com' }).token).toBe('def');
+      expect(find({ url: 'https://domain.com' }).token).toBe('def');
       expect(find({ url: 'httpsdomain.com' }).token).toBeUndefined();
     });
     it('matches on matchHost with dot prefix', () => {
@@ -210,7 +210,7 @@ describe('util/host-rules', () => {
         matchHost: '.domain.com',
         token: 'def',
       });
-      expect(find({ url: 'https://api.domain.com' }).token).toEqual('def');
+      expect(find({ url: 'https://api.domain.com' }).token).toBe('def');
       expect(find({ url: 'https://domain.com' }).token).toBeUndefined();
       expect(find({ url: 'httpsdomain.com' }).token).toBeUndefined();
     });
@@ -223,7 +223,7 @@ describe('util/host-rules', () => {
       expect(
         find({ hostType: datasourceNuget.id, url: 'https://nuget.local/api' })
           .token
-      ).toEqual('abc');
+      ).toBe('abc');
     });
     it('matches on endpoint subresource', () => {
       add({
diff --git a/lib/util/http/github.spec.ts b/lib/util/http/github.spec.ts
index c4043d3122bff538ede01653797b6e7e63f1f74f..67fc7e5a2c60bf3c1ec45c5f04112a01582576e3 100644
--- a/lib/util/http/github.spec.ts
+++ b/lib/util/http/github.spec.ts
@@ -356,7 +356,7 @@ describe('util/http/github', () => {
       await githubApi.requestGraphql(graphqlQuery);
       const [req] = httpMock.getTrace();
       expect(req).toBeDefined();
-      expect(req.url).toEqual('https://ghe.mycompany.com/api/graphql');
+      expect(req.url).toBe('https://ghe.mycompany.com/api/graphql');
     });
     it('supports app mode', async () => {
       hostRules.add({ hostType: 'github', token: 'x-access-token:123test' });
diff --git a/lib/util/http/index.spec.ts b/lib/util/http/index.spec.ts
index 5a9c9f47cc9f23af41edf2092ce6ada25267a44e..b3003dfad468c29ee225ed8e52619e793bb2de0a 100644
--- a/lib/util/http/index.spec.ts
+++ b/lib/util/http/index.spec.ts
@@ -213,6 +213,6 @@ describe('util/http/index', () => {
     httpMock.scope(baseUrl).get('/').reply(200, Buffer.from('test'));
     const res = await http.getBuffer('http://renovate.com');
     expect(res.body).toBeInstanceOf(Buffer);
-    expect(res.body.toString('utf-8')).toEqual('test');
+    expect(res.body.toString('utf-8')).toBe('test');
   });
 });
diff --git a/lib/util/json-writer/json-writer.spec.ts b/lib/util/json-writer/json-writer.spec.ts
index aa7ea661c65afa048be5d3205f8675632c6bd6ca..4e3f813810c9e0fa8e8a2b9068bae4ad8da854ce 100644
--- a/lib/util/json-writer/json-writer.spec.ts
+++ b/lib/util/json-writer/json-writer.spec.ts
@@ -9,7 +9,7 @@ describe('util/json-writer/json-writer', () => {
   it('should apply 2 spaces indentation by default', () => {
     const jsonWriter = new JSONWriter();
 
-    expect(jsonWriter.write(DATA)).toStrictEqual('{\n  "value": 1\n}\n');
+    expect(jsonWriter.write(DATA)).toBe('{\n  "value": 1\n}\n');
   });
 
   it('should apply indentation size', () => {
@@ -18,9 +18,7 @@ describe('util/json-writer/json-writer', () => {
       indentationSize: 10,
     });
 
-    expect(jsonWriter.write(DATA)).toStrictEqual(
-      '{\n          "value": 1\n}\n'
-    );
+    expect(jsonWriter.write(DATA)).toBe('{\n          "value": 1\n}\n');
   });
 
   it('should apply indentation type', () => {
@@ -28,7 +26,7 @@ describe('util/json-writer/json-writer', () => {
       indentationType: IndentationType.Tab,
     });
 
-    expect(jsonWriter.write(DATA)).toStrictEqual('{\n\t"value": 1\n}\n');
+    expect(jsonWriter.write(DATA)).toBe('{\n\t"value": 1\n}\n');
   });
 
   it('new line at the end should be optional', () => {
@@ -37,8 +35,6 @@ describe('util/json-writer/json-writer', () => {
       indentationSize: 10,
     });
 
-    expect(jsonWriter.write(DATA, false)).toStrictEqual(
-      '{\n          "value": 1\n}'
-    );
+    expect(jsonWriter.write(DATA, false)).toBe('{\n          "value": 1\n}');
   });
 });
diff --git a/lib/util/mask.spec.ts b/lib/util/mask.spec.ts
index 7d0753ba9604d2a0930c7bd5399e37c3ac095e43..a3150839d138d94b5ebe4642e1e897ea78e7a2dc 100644
--- a/lib/util/mask.spec.ts
+++ b/lib/util/mask.spec.ts
@@ -3,11 +3,11 @@ import { maskToken } from './mask';
 describe('util/mask', () => {
   describe('.maskToken', () => {
     it('returns value if passed value is falsy', () => {
-      expect(maskToken('')).toEqual('');
+      expect(maskToken('')).toBe('');
     });
 
     it('hides value content', () => {
-      expect(maskToken('123456789')).toEqual('12*****89');
+      expect(maskToken('123456789')).toBe('12*****89');
     });
   });
 });
diff --git a/lib/util/package-rules.spec.ts b/lib/util/package-rules.spec.ts
index 79647e1c675ab2dc69cf738bdafd32d4827c9e64..afc4da063e03ff9c257c5e1e484633701e76ba93 100644
--- a/lib/util/package-rules.spec.ts
+++ b/lib/util/package-rules.spec.ts
@@ -731,6 +731,6 @@ describe('util/package-rules', () => {
       ],
     };
     const res = applyPackageRules(config);
-    expect(res.groupSlug).toEqual('b');
+    expect(res.groupSlug).toBe('b');
   });
 });
diff --git a/lib/versioning/git/index.spec.ts b/lib/versioning/git/index.spec.ts
index 41d2a764cca376af0bbabc31203a938111514277..53b5b8b35c9e4a5b13e37e850db61a92bcdba988 100644
--- a/lib/versioning/git/index.spec.ts
+++ b/lib/versioning/git/index.spec.ts
@@ -18,7 +18,7 @@ describe('versioning/git/index', () => {
   });
   describe('valueToVersion(version)', () => {
     it('should return same as input', () => {
-      expect(git.valueToVersion('')).toEqual('');
+      expect(git.valueToVersion('')).toBe('');
     });
   });
 });
diff --git a/lib/versioning/semver-coerced/index.spec.ts b/lib/versioning/semver-coerced/index.spec.ts
index c0ec30e40297b14862558280ea85a4f9f48ab646..25fdee12ad445f539d1fd9e977c7e426125cb48b 100644
--- a/lib/versioning/semver-coerced/index.spec.ts
+++ b/lib/versioning/semver-coerced/index.spec.ts
@@ -18,31 +18,31 @@ describe('versioning/semver-coerced/index', () => {
 
   describe('.getMajor(input)', () => {
     it('should return major version number for strict semver', () => {
-      expect(semverCoerced.getMajor('1.0.2')).toEqual(1);
+      expect(semverCoerced.getMajor('1.0.2')).toBe(1);
     });
 
     it('should return major version number for non-strict semver', () => {
-      expect(semverCoerced.getMajor('v3.1')).toEqual(3);
+      expect(semverCoerced.getMajor('v3.1')).toBe(3);
     });
   });
 
   describe('.getMinor(input)', () => {
     it('should return minor version number for strict semver', () => {
-      expect(semverCoerced.getMinor('1.0.2')).toEqual(0);
+      expect(semverCoerced.getMinor('1.0.2')).toBe(0);
     });
 
     it('should return minor version number for non-strict semver', () => {
-      expect(semverCoerced.getMinor('v3.1')).toEqual(1);
+      expect(semverCoerced.getMinor('v3.1')).toBe(1);
     });
   });
 
   describe('.getPatch(input)', () => {
     it('should return patch version number for strict semver', () => {
-      expect(semverCoerced.getPatch('1.0.2')).toEqual(2);
+      expect(semverCoerced.getPatch('1.0.2')).toBe(2);
     });
 
     it('should return patch version number for non-strict semver', () => {
-      expect(semverCoerced.getPatch('v3.1.2-foo')).toEqual(2);
+      expect(semverCoerced.getPatch('v3.1.2-foo')).toBe(2);
     });
   });
 
@@ -174,13 +174,13 @@ describe('versioning/semver-coerced/index', () => {
     it('should return max satisfying version in range', () => {
       expect(
         semverCoerced.getSatisfyingVersion(['1.0.0', '1.0.4'], '^1.0')
-      ).toEqual('1.0.4');
+      ).toBe('1.0.4');
     });
 
     it('should support coercion', () => {
       expect(
         semverCoerced.getSatisfyingVersion(['v1.0', '1.0.4-foo'], '^1.0')
-      ).toEqual('1.0.4');
+      ).toBe('1.0.4');
     });
   });
 
@@ -188,13 +188,13 @@ describe('versioning/semver-coerced/index', () => {
     it('should return min satisfying version in range', () => {
       expect(
         semverCoerced.minSatisfyingVersion(['1.0.0', '1.0.4'], '^1.0')
-      ).toEqual('1.0.0');
+      ).toBe('1.0.0');
     });
 
     it('should support coercion', () => {
       expect(
         semverCoerced.minSatisfyingVersion(['v1.0', '1.0.4-foo'], '^1.0')
-      ).toEqual('1.0.0');
+      ).toBe('1.0.0');
     });
   });
 
@@ -207,13 +207,13 @@ describe('versioning/semver-coerced/index', () => {
           currentVersion: '1.0.0',
           newVersion: '1.1.0',
         })
-      ).toEqual('1.1.0');
+      ).toBe('1.1.0');
     });
   });
 
   describe('.sortVersions(a, b)', () => {
     it('should return zero for equal versions', () => {
-      expect(semverCoerced.sortVersions('1.0.0', '1.0.0')).toEqual(0);
+      expect(semverCoerced.sortVersions('1.0.0', '1.0.0')).toBe(0);
     });
 
     it('should return -1 for a < b', () => {
@@ -221,11 +221,11 @@ describe('versioning/semver-coerced/index', () => {
     });
 
     it('should return 1 for a > b', () => {
-      expect(semverCoerced.sortVersions('1.0.1', '1.0.0')).toEqual(1);
+      expect(semverCoerced.sortVersions('1.0.1', '1.0.0')).toBe(1);
     });
 
     it('should return zero for equal non-strict versions', () => {
-      expect(semverCoerced.sortVersions('v1.0', '1.x')).toEqual(0);
+      expect(semverCoerced.sortVersions('v1.0', '1.x')).toBe(0);
     });
   });
 });
diff --git a/lib/workers/branch/auto-replace.spec.ts b/lib/workers/branch/auto-replace.spec.ts
index 99faf7b5ab30b2c6281288f88311d96ff69f458d..e89415f4dd6dfce07225bbb66df3b56e17188bd8 100644
--- a/lib/workers/branch/auto-replace.spec.ts
+++ b/lib/workers/branch/auto-replace.spec.ts
@@ -103,7 +103,7 @@ describe('workers/branch/auto-replace', () => {
         reuseExistingBranch
       );
       // FIXME: explicit assert condition
-      expect(res).toEqual('wrong source');
+      expect(res).toBe('wrong source');
     });
     it('updates version and integrity', async () => {
       const script =
diff --git a/lib/workers/branch/index.spec.ts b/lib/workers/branch/index.spec.ts
index 877672413d37c5afb293cfa09860c8ac9a3b53f3..07231792f93bbb84f1980e6d1fc0f612ee6c26ba 100644
--- a/lib/workers/branch/index.spec.ts
+++ b/lib/workers/branch/index.spec.ts
@@ -1196,7 +1196,7 @@ describe('workers/branch/index', () => {
           (f) =>
             f.contents === 'modified_then_deleted_file' && f.name === '|delete|'
         )
-      ).not.toBeUndefined();
+      ).toBeDefined();
     });
 
     it('executes post-upgrade tasks once when set to branch mode', async () => {
diff --git a/lib/workers/global/config/parse/cli.spec.ts b/lib/workers/global/config/parse/cli.spec.ts
index 76455df6f260f7c29235ef295b0c830024541a79..cc9aa78092b25e9d4d6828bac3a1ec6015a5fcf4 100644
--- a/lib/workers/global/config/parse/cli.spec.ts
+++ b/lib/workers/global/config/parse/cli.spec.ts
@@ -13,14 +13,14 @@ describe('workers/global/config/parse/cli', () => {
       const option: Partial<RenovateOptions> = {
         name: 'oneTwoThree',
       };
-      expect(cli.getCliName(option)).toEqual('--one-two-three');
+      expect(cli.getCliName(option)).toBe('--one-two-three');
     });
     it('generates returns empty if CLI false', () => {
       const option: Partial<RenovateOptions> = {
         name: 'oneTwoThree',
         cli: false,
       };
-      expect(cli.getCliName(option)).toEqual('');
+      expect(cli.getCliName(option)).toBe('');
     });
   });
   describe('.getConfig(argv)', () => {
diff --git a/lib/workers/global/config/parse/env.spec.ts b/lib/workers/global/config/parse/env.spec.ts
index 432183313c4dcc101fd7d84c0dbc383f042f77e1..f52a856b9545e2cb724457a6ace1bf1739c329da 100644
--- a/lib/workers/global/config/parse/env.spec.ts
+++ b/lib/workers/global/config/parse/env.spec.ts
@@ -231,20 +231,20 @@ describe('workers/global/config/parse/env', () => {
         name: 'foo',
         env: false,
       };
-      expect(env.getEnvName(option)).toEqual('');
+      expect(env.getEnvName(option)).toBe('');
     });
     it('returns existing env', () => {
       const option: Partial<RenovateOptions> = {
         name: 'foo',
         env: 'FOO',
       };
-      expect(env.getEnvName(option)).toEqual('FOO');
+      expect(env.getEnvName(option)).toBe('FOO');
     });
     it('generates RENOVATE_ env', () => {
       const option: Partial<RenovateOptions> = {
         name: 'oneTwoThree',
       };
-      expect(env.getEnvName(option)).toEqual('RENOVATE_ONE_TWO_THREE');
+      expect(env.getEnvName(option)).toBe('RENOVATE_ONE_TWO_THREE');
     });
   });
 });
diff --git a/lib/workers/global/config/parse/file.spec.ts b/lib/workers/global/config/parse/file.spec.ts
index 0934b9d0be1ff75856392788ca6716aa472ebef7..f2a78c48d07e8cdfdff3cace566210aa67a9aa32 100644
--- a/lib/workers/global/config/parse/file.spec.ts
+++ b/lib/workers/global/config/parse/file.spec.ts
@@ -26,7 +26,7 @@ describe('workers/global/config/parse/file', () => {
       const configFile = upath.resolve(__dirname, './__fixtures__/file2.js');
       const res = file.getConfig({ RENOVATE_CONFIG_FILE: configFile });
       expect(res).toMatchSnapshot();
-      expect(res.rangeStrategy).toEqual('bump');
+      expect(res.rangeStrategy).toBe('bump');
     });
 
     it('parse and returns empty config if there is no RENOVATE_CONFIG_FILE in env', () => {
diff --git a/lib/workers/global/config/parse/index.spec.ts b/lib/workers/global/config/parse/index.spec.ts
index 5fd74b6d3920e4bfa3f01ccb296bcb2dfda173be..10503f757c2b16a733786e0410d9bd4459321d54 100644
--- a/lib/workers/global/config/parse/index.spec.ts
+++ b/lib/workers/global/config/parse/index.spec.ts
@@ -121,7 +121,7 @@ describe('workers/global/config/parse/index', () => {
         '--endpoint=https://github.renovatebot.com/api/v3',
       ]);
       const parsed = await configParser.parseConfigs(defaultEnv, defaultArgv);
-      expect(parsed.endpoint).toEqual('https://github.renovatebot.com/api/v3/');
+      expect(parsed.endpoint).toBe('https://github.renovatebot.com/api/v3/');
     });
     it('parses global manager config', async () => {
       defaultArgv = defaultArgv.concat(['--detect-global-manager-config=true']);
diff --git a/lib/workers/global/index.spec.ts b/lib/workers/global/index.spec.ts
index 92f46e7e91ca4f9e554c637fe695693772646bc5..237bcd76690309d258e4f0002368dc046a0a23c4 100644
--- a/lib/workers/global/index.spec.ts
+++ b/lib/workers/global/index.spec.ts
@@ -31,7 +31,7 @@ describe('workers/global/index', () => {
       maintainYarnLock: true,
       foo: 1,
     });
-    await expect(globalWorker.start()).resolves.toEqual(0);
+    await expect(globalWorker.start()).resolves.toBe(0);
   });
   it('handles zero repos', async () => {
     configParser.parseConfigs.mockResolvedValueOnce({
@@ -39,7 +39,7 @@ describe('workers/global/index', () => {
       cacheDir: '/tmp/cache',
       repositories: [],
     });
-    await expect(globalWorker.start()).resolves.toEqual(0);
+    await expect(globalWorker.start()).resolves.toBe(0);
   });
   it('processes repositories', async () => {
     configParser.parseConfigs.mockResolvedValueOnce({
@@ -90,7 +90,7 @@ describe('workers/global/index', () => {
         msg: 'meh',
       },
     ]);
-    await expect(globalWorker.start()).resolves.not.toEqual(0);
+    await expect(globalWorker.start()).resolves.not.toBe(0);
   });
   it('exits with zero when warnings are logged', async () => {
     configParser.parseConfigs.mockResolvedValueOnce({
@@ -105,7 +105,7 @@ describe('workers/global/index', () => {
         msg: 'meh',
       },
     ]);
-    await expect(globalWorker.start()).resolves.toEqual(0);
+    await expect(globalWorker.start()).resolves.toBe(0);
   });
   describe('processes platforms', () => {
     it('github', async () => {
@@ -140,7 +140,7 @@ describe('workers/global/index', () => {
       });
       fs.writeFile.mockReturnValueOnce(null);
 
-      expect(await globalWorker.start()).toEqual(0);
+      expect(await globalWorker.start()).toBe(0);
       expect(fs.writeFile).toHaveBeenCalledTimes(1);
       expect(fs.writeFile).toHaveBeenCalledWith(
         '/tmp/renovate-output.json',
diff --git a/lib/workers/pr/changelog/release-notes.spec.ts b/lib/workers/pr/changelog/release-notes.spec.ts
index fbb145bc4c7122da3ab4527bb6914ac27b95b0e4..d3af0fb71f76bfec1bd007452431beb3a8f9e0cf 100644
--- a/lib/workers/pr/changelog/release-notes.spec.ts
+++ b/lib/workers/pr/changelog/release-notes.spec.ts
@@ -75,11 +75,11 @@ describe('workers/pr/changelog/release-notes', () => {
     });
 
     it('handles date object', () => {
-      expect(releaseNotesCacheMinutes(new Date())).toEqual(55);
+      expect(releaseNotesCacheMinutes(new Date())).toBe(55);
     });
 
     it.each([null, undefined, 'fake', 123])('handles invalid: %s', (date) => {
-      expect(releaseNotesCacheMinutes(date as never)).toEqual(55);
+      expect(releaseNotesCacheMinutes(date as never)).toBe(55);
     });
   });
 
diff --git a/lib/workers/pr/index.spec.ts b/lib/workers/pr/index.spec.ts
index b511c9b5e2b296482f5c252a70d1d51f44d6a441..2cd7adeec71b267cb841c7c528433c2471092d3f 100644
--- a/lib/workers/pr/index.spec.ts
+++ b/lib/workers/pr/index.spec.ts
@@ -214,14 +214,14 @@ describe('workers/pr/index', () => {
       platform.getBranchStatus.mockResolvedValueOnce(BranchStatus.red);
       config.prCreation = 'status-success';
       const { prBlockedBy, pr } = await prWorker.ensurePr(config);
-      expect(prBlockedBy).toEqual('AwaitingTests');
+      expect(prBlockedBy).toBe('AwaitingTests');
       expect(pr).toBeUndefined();
     });
     it('should return needs-approval if prCreation set to approval', async () => {
       platform.getBranchStatus.mockResolvedValueOnce(BranchStatus.green);
       config.prCreation = 'approval';
       const { prBlockedBy, pr } = await prWorker.ensurePr(config);
-      expect(prBlockedBy).toEqual('NeedsApproval');
+      expect(prBlockedBy).toBe('NeedsApproval');
       expect(pr).toBeUndefined();
     });
     it('should create PR if success for gitlab deps', async () => {
@@ -265,7 +265,7 @@ describe('workers/pr/index', () => {
       config.schedule = ['before 5am'];
       limits.isLimitReached.mockReturnValueOnce(true);
       const { prBlockedBy } = await prWorker.ensurePr(config);
-      expect(prBlockedBy).toEqual('RateLimited');
+      expect(prBlockedBy).toBe('RateLimited');
       expect(platform.createPr.mock.calls).toBeEmpty();
     });
     it('should create PR if limit is reached but dashboard checked', async () => {
@@ -341,7 +341,7 @@ describe('workers/pr/index', () => {
       });
       config.prCreation = 'status-success';
       const { prBlockedBy, pr } = await prWorker.ensurePr(config);
-      expect(prBlockedBy).toEqual('Error');
+      expect(prBlockedBy).toBe('Error');
       expect(pr).toBeUndefined();
     });
     it('should return null if waiting for not pending', async () => {
@@ -351,7 +351,7 @@ describe('workers/pr/index', () => {
       );
       config.prCreation = 'not-pending';
       const { prBlockedBy, pr } = await prWorker.ensurePr(config);
-      expect(prBlockedBy).toEqual('AwaitingTests');
+      expect(prBlockedBy).toBe('AwaitingTests');
       expect(pr).toBeUndefined();
     });
     it('should not create PR if waiting for not pending with stabilityStatus yellow', async () => {
@@ -362,7 +362,7 @@ describe('workers/pr/index', () => {
       config.prCreation = 'not-pending';
       config.stabilityStatus = BranchStatus.yellow;
       const { prBlockedBy, pr } = await prWorker.ensurePr(config);
-      expect(prBlockedBy).toEqual('AwaitingTests');
+      expect(prBlockedBy).toBe('AwaitingTests');
       expect(pr).toBeUndefined();
     });
     it('should create PR if pending timeout hit', async () => {
@@ -579,7 +579,7 @@ describe('workers/pr/index', () => {
       platform.getBranchStatus.mockResolvedValueOnce(BranchStatus.yellow);
       git.getBranchLastCommitTime.mockResolvedValueOnce(new Date());
       const { prBlockedBy, pr } = await prWorker.ensurePr(config);
-      expect(prBlockedBy).toEqual('BranchAutomerge');
+      expect(prBlockedBy).toBe('BranchAutomerge');
       expect(pr).toBeUndefined();
     });
     it('should return PR if branch automerging taking too long', async () => {
@@ -597,7 +597,7 @@ describe('workers/pr/index', () => {
       platform.getBranchStatus.mockResolvedValueOnce(BranchStatus.yellow);
       git.getBranchLastCommitTime.mockResolvedValueOnce(new Date('2018-01-01'));
       const { prBlockedBy, pr } = await prWorker.ensurePr(config);
-      expect(prBlockedBy).toEqual('BranchAutomerge');
+      expect(prBlockedBy).toBe('BranchAutomerge');
       expect(pr).toBeUndefined();
     });
     it('handles duplicate upgrades', async () => {
diff --git a/lib/workers/repository/init/merge.spec.ts b/lib/workers/repository/init/merge.spec.ts
index fed851fe5f34406456e6f56c99da660a1e3b0e78..36c7a4076dc9b412a8f4eba2989c81c15a96a81e 100644
--- a/lib/workers/repository/init/merge.spec.ts
+++ b/lib/workers/repository/init/merge.spec.ts
@@ -180,7 +180,7 @@ describe('workers/repository/init/merge', () => {
         e = err;
       }
       expect(e).toBeDefined();
-      expect(e.toString()).toEqual('Error: config-validation');
+      expect(e.toString()).toBe('Error: config-validation');
     });
     it('migrates nested config', async () => {
       git.getFileList.mockResolvedValue(['renovate.json']);
@@ -194,7 +194,7 @@ describe('workers/repository/init/merge', () => {
         migratedConfig: {},
       });
       config.extends = [':automergeDisabled'];
-      expect(await mergeRenovateConfig(config)).not.toBeUndefined();
+      expect(await mergeRenovateConfig(config)).toBeDefined();
     });
     it('continues if no errors', async () => {
       git.getFileList.mockResolvedValue(['package.json', '.renovaterc.json']);
@@ -204,7 +204,7 @@ describe('workers/repository/init/merge', () => {
         errors: [],
       });
       config.extends = [':automergeDisabled'];
-      expect(await mergeRenovateConfig(config)).not.toBeUndefined();
+      expect(await mergeRenovateConfig(config)).toBeDefined();
     });
   });
 });
diff --git a/lib/workers/repository/onboarding/pr/base-branch.spec.ts b/lib/workers/repository/onboarding/pr/base-branch.spec.ts
index f83123c863d8ba5164390f1529cb75c86a55ec11..39bcac7a8b35ea0c6204ee3baf3434e1d340729a 100644
--- a/lib/workers/repository/onboarding/pr/base-branch.spec.ts
+++ b/lib/workers/repository/onboarding/pr/base-branch.spec.ts
@@ -16,14 +16,14 @@ describe('workers/repository/onboarding/pr/base-branch', () => {
     it('describes baseBranch', () => {
       config.baseBranches = ['some-branch'];
       const res = getBaseBranchDesc(config);
-      expect(res.trim()).toEqual(
+      expect(res.trim()).toBe(
         'You have configured Renovate to use branch `some-branch` as base branch.'
       );
     });
     it('describes baseBranches', () => {
       config.baseBranches = ['some-branch', 'some-other-branch'];
       const res = getBaseBranchDesc(config);
-      expect(res.trim()).toEqual(
+      expect(res.trim()).toBe(
         'You have configured Renovate to use the following baseBranches: `some-branch`, `some-other-branch`.'
       );
     });
diff --git a/lib/workers/repository/onboarding/pr/config-description.spec.ts b/lib/workers/repository/onboarding/pr/config-description.spec.ts
index 76f8f5c1730d82fb65d568250d45bc7194591e37..7bfeb3403d4cd1ff681f4e0ba57015d7865588e2 100644
--- a/lib/workers/repository/onboarding/pr/config-description.spec.ts
+++ b/lib/workers/repository/onboarding/pr/config-description.spec.ts
@@ -12,7 +12,7 @@ describe('workers/repository/onboarding/pr/config-description', () => {
     it('returns empty', () => {
       delete config.description;
       const res = getConfigDesc(config);
-      expect(res).toEqual('');
+      expect(res).toBe('');
     });
     it('returns a full list', () => {
       const packageFiles: Record<string, PackageFile[]> = {
diff --git a/lib/workers/repository/process/fetch.spec.ts b/lib/workers/repository/process/fetch.spec.ts
index 25b9e901a49f2083718bad88404d62235d1a09e9..bf44f283a16a4dd57925fb63d12b4e4a7ca82624 100644
--- a/lib/workers/repository/process/fetch.spec.ts
+++ b/lib/workers/repository/process/fetch.spec.ts
@@ -45,9 +45,9 @@ describe('workers/repository/process/fetch', () => {
       };
       await fetchUpdates(config, packageFiles);
       expect(packageFiles).toMatchSnapshot();
-      expect(packageFiles.npm[0].deps[0].skipReason).toEqual('ignored');
+      expect(packageFiles.npm[0].deps[0].skipReason).toBe('ignored');
       expect(packageFiles.npm[0].deps[0].updates).toHaveLength(0);
-      expect(packageFiles.npm[0].deps[1].skipReason).toEqual('disabled');
+      expect(packageFiles.npm[0].deps[1].skipReason).toBe('disabled');
       expect(packageFiles.npm[0].deps[1].updates).toHaveLength(0);
     });
     it('fetches updates', async () => {
diff --git a/lib/workers/repository/process/limits.spec.ts b/lib/workers/repository/process/limits.spec.ts
index 7f1128ea90ceeef49bd9b5d2cc6731ca9c0df1a0..eb16171a052c7c306b00ce2e3b56c0f06537d797 100644
--- a/lib/workers/repository/process/limits.spec.ts
+++ b/lib/workers/repository/process/limits.spec.ts
@@ -39,17 +39,17 @@ describe('workers/repository/process/limits', () => {
         branchPrefix: 'foo/',
         onboardingBranch: 'bar/configure',
       });
-      expect(res).toEqual(7);
+      expect(res).toBe(7);
     });
     it('returns prHourlyLimit if errored', async () => {
       config.prHourlyLimit = 2;
       platform.getPrList.mockRejectedValue('Unknown error');
       const res = await limits.getPrHourlyRemaining(config);
-      expect(res).toEqual(2);
+      expect(res).toBe(2);
     });
     it('returns 99 if no hourly limit', async () => {
       const res = await limits.getPrHourlyRemaining(config);
-      expect(res).toEqual(99);
+      expect(res).toBe(99);
     });
   });
   describe('getConcurrentPrsRemaining()', () => {
@@ -68,11 +68,11 @@ describe('workers/repository/process/limits', () => {
         { branchName: null },
       ] as never;
       const res = await limits.getConcurrentPrsRemaining(config, branches);
-      expect(res).toEqual(19);
+      expect(res).toBe(19);
     });
     it('returns 99 if no concurrent limit', async () => {
       const res = await limits.getConcurrentPrsRemaining(config, []);
-      expect(res).toEqual(99);
+      expect(res).toBe(99);
     });
   });
 
@@ -81,12 +81,12 @@ describe('workers/repository/process/limits', () => {
       config.prHourlyLimit = 5;
       platform.getPrList.mockResolvedValueOnce([]);
       const res = await limits.getPrsRemaining(config, []);
-      expect(res).toEqual(5);
+      expect(res).toBe(5);
     });
     it('returns concurrent limit', async () => {
       config.prConcurrentLimit = 5;
       const res = await limits.getPrsRemaining(config, []);
-      expect(res).toEqual(5);
+      expect(res).toBe(5);
     });
   });
 
@@ -97,7 +97,7 @@ describe('workers/repository/process/limits', () => {
       const res = limits.getConcurrentBranchesRemaining(config, [
         { branchName: 'foo' },
       ] as never);
-      expect(res).toEqual(19);
+      expect(res).toBe(19);
     });
     it('defaults to prConcurrentLimit', () => {
       config.branchConcurrentLimit = null;
@@ -106,22 +106,22 @@ describe('workers/repository/process/limits', () => {
       const res = limits.getConcurrentBranchesRemaining(config, [
         { branchName: 'foo' },
       ] as never);
-      expect(res).toEqual(19);
+      expect(res).toBe(19);
     });
     it('does not use prConcurrentLimit for explicit branchConcurrentLimit=0', () => {
       config.branchConcurrentLimit = 0;
       config.prConcurrentLimit = 20;
       const res = limits.getConcurrentBranchesRemaining(config, []);
-      expect(res).toEqual(99);
+      expect(res).toBe(99);
     });
     it('returns 99 if no limits are set', () => {
       const res = limits.getConcurrentBranchesRemaining(config, []);
-      expect(res).toEqual(99);
+      expect(res).toBe(99);
     });
     it('returns prConcurrentLimit if errored', () => {
       config.branchConcurrentLimit = 2;
       const res = limits.getConcurrentBranchesRemaining(config, null);
-      expect(res).toEqual(2);
+      expect(res).toBe(2);
     });
   });
 
@@ -138,7 +138,7 @@ describe('workers/repository/process/limits', () => {
           },
           []
         )
-      ).resolves.toEqual(3);
+      ).resolves.toBe(3);
 
       await expect(
         limits.getBranchesRemaining(
@@ -149,7 +149,7 @@ describe('workers/repository/process/limits', () => {
           },
           []
         )
-      ).resolves.toEqual(7);
+      ).resolves.toBe(7);
     });
   });
 });
diff --git a/lib/workers/repository/process/lookup/filter-checks.spec.ts b/lib/workers/repository/process/lookup/filter-checks.spec.ts
index d9898d6204b79ed538691275bf78b0700686bfca..092e145b22d6a398813546f5ed3d5393053d7524 100644
--- a/lib/workers/repository/process/lookup/filter-checks.spec.ts
+++ b/lib/workers/repository/process/lookup/filter-checks.spec.ts
@@ -60,7 +60,7 @@ describe('workers/repository/process/lookup/filter-checks', () => {
       expect(res).toMatchSnapshot();
       expect(res.pendingChecks).toBeFalse();
       expect(res.pendingReleases).toHaveLength(0);
-      expect(res.release.version).toEqual('1.0.4');
+      expect(res.release.version).toBe('1.0.4');
     });
 
     it('returns non-pending latest release if internalChecksFilter=flexible and none pass checks', async () => {
@@ -75,7 +75,7 @@ describe('workers/repository/process/lookup/filter-checks', () => {
       expect(res).toMatchSnapshot();
       expect(res.pendingChecks).toBeFalse();
       expect(res.pendingReleases).toHaveLength(0);
-      expect(res.release.version).toEqual('1.0.4');
+      expect(res.release.version).toBe('1.0.4');
     });
 
     it('returns pending latest release if internalChecksFilter=strict and none pass checks', async () => {
@@ -90,7 +90,7 @@ describe('workers/repository/process/lookup/filter-checks', () => {
       expect(res).toMatchSnapshot();
       expect(res.pendingChecks).toBeTrue();
       expect(res.pendingReleases).toHaveLength(0);
-      expect(res.release.version).toEqual('1.0.4');
+      expect(res.release.version).toBe('1.0.4');
     });
 
     it('returns non-latest release if internalChecksFilter=strict and some pass checks', async () => {
@@ -105,7 +105,7 @@ describe('workers/repository/process/lookup/filter-checks', () => {
       expect(res).toMatchSnapshot();
       expect(res.pendingChecks).toBeFalse();
       expect(res.pendingReleases).toHaveLength(2);
-      expect(res.release.version).toEqual('1.0.2');
+      expect(res.release.version).toBe('1.0.2');
     });
 
     it('returns non-latest release if internalChecksFilter=flexible and some pass checks', async () => {
@@ -120,7 +120,7 @@ describe('workers/repository/process/lookup/filter-checks', () => {
       expect(res).toMatchSnapshot();
       expect(res.pendingChecks).toBeFalse();
       expect(res.pendingReleases).toHaveLength(2);
-      expect(res.release.version).toEqual('1.0.2');
+      expect(res.release.version).toBe('1.0.2');
     });
 
     it('picks up stabilityDays settings from hostRules', async () => {
@@ -136,7 +136,7 @@ describe('workers/repository/process/lookup/filter-checks', () => {
       expect(res).toMatchSnapshot();
       expect(res.pendingChecks).toBeFalse();
       expect(res.pendingReleases).toHaveLength(0);
-      expect(res.release.version).toEqual('1.0.4');
+      expect(res.release.version).toBe('1.0.4');
     });
 
     it('picks up stabilityDays settings from updateType', async () => {
@@ -151,7 +151,7 @@ describe('workers/repository/process/lookup/filter-checks', () => {
       expect(res).toMatchSnapshot();
       expect(res.pendingChecks).toBeFalse();
       expect(res.pendingReleases).toHaveLength(1);
-      expect(res.release.version).toEqual('1.0.3');
+      expect(res.release.version).toBe('1.0.3');
     });
 
     it('picks up minimumConfidence settings from updateType', async () => {
@@ -171,7 +171,7 @@ describe('workers/repository/process/lookup/filter-checks', () => {
       expect(res).toMatchSnapshot();
       expect(res.pendingChecks).toBeFalse();
       expect(res.pendingReleases).toHaveLength(3);
-      expect(res.release.version).toEqual('1.0.1');
+      expect(res.release.version).toBe('1.0.1');
     });
   });
 });
diff --git a/lib/workers/repository/process/lookup/index.spec.ts b/lib/workers/repository/process/lookup/index.spec.ts
index b1db1cba7cc65bb99775370b3d3933a5fc6cd0c6..ff172c99ff613422573630bfbc845133cb68b658 100644
--- a/lib/workers/repository/process/lookup/index.spec.ts
+++ b/lib/workers/repository/process/lookup/index.spec.ts
@@ -209,8 +209,8 @@ describe('workers/repository/process/lookup/index', () => {
       const res = await lookup.lookupUpdates(config);
       expect(res.updates).toMatchSnapshot();
       expect(res.updates).toHaveLength(2);
-      expect(res.updates[0].updateType).toEqual('patch');
-      expect(res.updates[1].updateType).toEqual('major');
+      expect(res.updates[0].updateType).toBe('patch');
+      expect(res.updates[1].updateType).toBe('major');
     });
     it('returns minor update if automerging both patch and minor', async () => {
       config.patch = {
@@ -226,7 +226,7 @@ describe('workers/repository/process/lookup/index', () => {
       httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson);
       const res = await lookup.lookupUpdates(config);
       expect(res.updates).toMatchSnapshot();
-      expect(res.updates[0].updateType).toEqual('patch');
+      expect(res.updates[0].updateType).toBe('patch');
     });
     it('returns patch update if separateMinorPatch', async () => {
       config.separateMinorPatch = true;
@@ -315,7 +315,7 @@ describe('workers/repository/process/lookup/index', () => {
       httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson);
       const res = await lookup.lookupUpdates(config);
       expect(res.updates).toMatchSnapshot();
-      expect(res.updates[0].updateType).toEqual('minor');
+      expect(res.updates[0].updateType).toBe('minor');
     });
     it('widens minor ranged versions if configured', async () => {
       config.currentValue = '~1.3.0';
@@ -624,7 +624,7 @@ describe('workers/repository/process/lookup/index', () => {
       httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson);
       const res = await lookup.lookupUpdates(config);
       expect(res.updates).toMatchSnapshot();
-      expect(res.updates[0].newValue).toEqual('<= 1.4.1');
+      expect(res.updates[0].newValue).toBe('<= 1.4.1');
     });
     it('upgrades major less than ranges without pinning', async () => {
       config.rangeStrategy = 'replace';
@@ -634,7 +634,7 @@ describe('workers/repository/process/lookup/index', () => {
       httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson);
       const res = await lookup.lookupUpdates(config);
       expect(res.updates).toMatchSnapshot();
-      expect(res.updates[0].newValue).toEqual('< 2.0.0');
+      expect(res.updates[0].newValue).toBe('< 2.0.0');
     });
     it('upgrades major greater than less than ranges without pinning', async () => {
       config.rangeStrategy = 'widen';
@@ -644,7 +644,7 @@ describe('workers/repository/process/lookup/index', () => {
       httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson);
       const res = await lookup.lookupUpdates(config);
       expect(res.updates).toMatchSnapshot();
-      expect(res.updates[0].newValue).toEqual('>= 0.5.0 < 2.0.0');
+      expect(res.updates[0].newValue).toBe('>= 0.5.0 < 2.0.0');
     });
     it('upgrades minor greater than less than ranges without pinning', async () => {
       config.rangeStrategy = 'widen';
@@ -654,8 +654,8 @@ describe('workers/repository/process/lookup/index', () => {
       httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson);
       const res = await lookup.lookupUpdates(config);
       expect(res.updates).toMatchSnapshot();
-      expect(res.updates[0].newValue).toEqual('>= 0.5.0 <0.10');
-      expect(res.updates[1].newValue).toEqual('>= 0.5.0 <1.5');
+      expect(res.updates[0].newValue).toBe('>= 0.5.0 <0.10');
+      expect(res.updates[1].newValue).toBe('>= 0.5.0 <1.5');
     });
     it('upgrades minor greater than less than equals ranges without pinning', async () => {
       config.rangeStrategy = 'widen';
@@ -665,8 +665,8 @@ describe('workers/repository/process/lookup/index', () => {
       httpMock.scope('https://registry.npmjs.org').get('/q').reply(200, qJson);
       const res = await lookup.lookupUpdates(config);
       expect(res.updates).toMatchSnapshot();
-      expect(res.updates[0].newValue).toEqual('>= 0.5.0 <= 0.9.7');
-      expect(res.updates[1].newValue).toEqual('>= 0.5.0 <= 1.4.1');
+      expect(res.updates[0].newValue).toBe('>= 0.5.0 <= 0.9.7');
+      expect(res.updates[1].newValue).toBe('>= 0.5.0 <= 1.4.1');
     });
     it('rejects reverse ordered less than greater than', async () => {
       config.rangeStrategy = 'widen';
@@ -746,7 +746,7 @@ describe('workers/repository/process/lookup/index', () => {
       });
       const res = await lookup.lookupUpdates(config);
       expect(res.updates).toHaveLength(1);
-      expect(res.updates[0].newVersion).toEqual('1.4.6');
+      expect(res.updates[0].newVersion).toBe('1.4.6');
       expect(res.updates[0].pendingChecks).toBeTrue();
     });
 
@@ -777,7 +777,7 @@ describe('workers/repository/process/lookup/index', () => {
       });
       const res = await lookup.lookupUpdates(config);
       expect(res.updates).toHaveLength(1);
-      expect(res.updates[0].newVersion).toEqual('1.4.5');
+      expect(res.updates[0].newVersion).toBe('1.4.5');
       expect(res.updates[0].pendingVersions).toHaveLength(1);
     });
 
@@ -794,7 +794,7 @@ describe('workers/repository/process/lookup/index', () => {
       const res = await lookup.lookupUpdates(config);
       expect(res.updates).toMatchSnapshot();
       expect(res.updates).toHaveLength(1);
-      expect(res.updates[0].newValue).toEqual('2.5.17-beta.0');
+      expect(res.updates[0].newValue).toBe('2.5.17-beta.0');
     });
     it('should allow unstable versions if the current version is unstable', async () => {
       config.currentValue = '3.1.0-dev.20180731';
@@ -807,7 +807,7 @@ describe('workers/repository/process/lookup/index', () => {
       const res = await lookup.lookupUpdates(config);
       expect(res.updates).toMatchSnapshot();
       expect(res.updates).toHaveLength(1);
-      expect(res.updates[0].newValue).toEqual('3.1.0-dev.20180813');
+      expect(res.updates[0].newValue).toBe('3.1.0-dev.20180813');
     });
     it('should not jump unstable versions', async () => {
       config.currentValue = '3.0.1-insiders.20180726';
@@ -820,7 +820,7 @@ describe('workers/repository/process/lookup/index', () => {
       const res = await lookup.lookupUpdates(config);
       expect(res.updates).toMatchSnapshot();
       expect(res.updates).toHaveLength(1);
-      expect(res.updates[0].newValue).toEqual('3.0.1');
+      expect(res.updates[0].newValue).toBe('3.0.1');
     });
 
     it('should update pinned versions if updatePinnedDependencies=true', async () => {
@@ -835,7 +835,7 @@ describe('workers/repository/process/lookup/index', () => {
       const res = await lookup.lookupUpdates(config);
       expect(res.updates).toMatchSnapshot();
       expect(res.updates).toHaveLength(1);
-      expect(res.updates[0].newValue).toEqual('0.0.35');
+      expect(res.updates[0].newValue).toBe('0.0.35');
     });
 
     it('should not update pinned versions if updatePinnedDependencies=false', async () => {
@@ -863,7 +863,7 @@ describe('workers/repository/process/lookup/index', () => {
       const res = await lookup.lookupUpdates(config);
       expect(res.updates).toMatchSnapshot();
       expect(res.updates).toHaveLength(1);
-      expect(res.updates[0].newValue).toEqual('3.0.1-insiders.20180726');
+      expect(res.updates[0].newValue).toBe('3.0.1-insiders.20180726');
     });
     it('should roll back to dist-tag if current version is higher', async () => {
       config.currentValue = '3.1.0-dev.20180813';
@@ -878,7 +878,7 @@ describe('workers/repository/process/lookup/index', () => {
       const res = await lookup.lookupUpdates(config);
       expect(res.updates).toMatchSnapshot();
       expect(res.updates).toHaveLength(1);
-      expect(res.updates[0].newValue).toEqual('3.0.1-insiders.20180726');
+      expect(res.updates[0].newValue).toBe('3.0.1-insiders.20180726');
     });
     it('should jump unstable versions if followTag', async () => {
       config.currentValue = '3.0.0-insiders.20180706';
@@ -892,7 +892,7 @@ describe('workers/repository/process/lookup/index', () => {
       const res = await lookup.lookupUpdates(config);
       expect(res.updates).toMatchSnapshot();
       expect(res.updates).toHaveLength(1);
-      expect(res.updates[0].newValue).toEqual('3.0.1-insiders.20180726');
+      expect(res.updates[0].newValue).toBe('3.0.1-insiders.20180726');
     });
     it('should update nothing if current version is dist-tag', async () => {
       config.currentValue = '3.0.1-insiders.20180726';
@@ -919,7 +919,7 @@ describe('workers/repository/process/lookup/index', () => {
       expect(res.updates).toMatchSnapshot();
       expect(res.updates).toHaveLength(0);
       expect(res.warnings).toHaveLength(1);
-      expect(res.warnings[0].message).toEqual(
+      expect(res.warnings[0].message).toBe(
         "Can't find version with tag foo for typescript"
       );
     });
@@ -1159,7 +1159,7 @@ describe('workers/repository/process/lookup/index', () => {
         .reply(200, returnJson);
       const res = await lookup.lookupUpdates(config);
       expect(res).toMatchSnapshot();
-      expect(res.updates[0].newVersion).toEqual('1.4.0');
+      expect(res.updates[0].newVersion).toBe('1.4.0');
     });
     it('is deprecated', async () => {
       config.currentValue = '1.3.0';
@@ -1178,7 +1178,7 @@ describe('workers/repository/process/lookup/index', () => {
         .reply(200, returnJson);
       const res = await lookup.lookupUpdates(config);
       expect(res).toMatchSnapshot();
-      expect(res.updates[0].newVersion).toEqual('1.4.1');
+      expect(res.updates[0].newVersion).toBe('1.4.1');
     });
     it('skips unsupported values', async () => {
       config.currentValue = 'alpine';
diff --git a/lib/workers/repository/process/write.spec.ts b/lib/workers/repository/process/write.spec.ts
index e818bc2aaf3f45f47111f4606f1ef9355b2ef963..067e1fe952179c9fe3a23f86aa202792662c577a 100644
--- a/lib/workers/repository/process/write.spec.ts
+++ b/lib/workers/repository/process/write.spec.ts
@@ -49,7 +49,7 @@ describe('workers/repository/process/write', () => {
         result: BranchResult.Automerged,
       });
       const res = await writeUpdates(config, branches);
-      expect(res).toEqual('automerged');
+      expect(res).toBe('automerged');
       expect(branchWorker.processBranch).toHaveBeenCalledTimes(4);
     });
     it('increments branch counter', async () => {
diff --git a/lib/workers/repository/updates/branch-name.spec.ts b/lib/workers/repository/updates/branch-name.spec.ts
index 15ca57ac5cc9cc31fbe2b905845f500a075747c7..3475b7328795b299b5f7817c87c21d8968163f5c 100644
--- a/lib/workers/repository/updates/branch-name.spec.ts
+++ b/lib/workers/repository/updates/branch-name.spec.ts
@@ -12,7 +12,7 @@ describe('workers/repository/updates/branch-name', () => {
         },
       };
       generateBranchName(upgrade);
-      expect(upgrade.branchName).toEqual('some-group-name-grouptopic');
+      expect(upgrade.branchName).toBe('some-group-name-grouptopic');
     });
     it('uses groupSlug if defined', () => {
       const upgrade: RenovateConfig = {
@@ -24,7 +24,7 @@ describe('workers/repository/updates/branch-name', () => {
         },
       };
       generateBranchName(upgrade);
-      expect(upgrade.branchName).toEqual('some-group-slug-grouptopic');
+      expect(upgrade.branchName).toBe('some-group-slug-grouptopic');
     });
     it('separates major with groups', () => {
       const upgrade: RenovateConfig = {
@@ -40,7 +40,7 @@ describe('workers/repository/updates/branch-name', () => {
         },
       };
       generateBranchName(upgrade);
-      expect(upgrade.branchName).toEqual('major-2-some-group-slug-grouptopic');
+      expect(upgrade.branchName).toBe('major-2-some-group-slug-grouptopic');
     });
     it('uses single major with groups', () => {
       const upgrade: RenovateConfig = {
@@ -56,7 +56,7 @@ describe('workers/repository/updates/branch-name', () => {
         },
       };
       generateBranchName(upgrade);
-      expect(upgrade.branchName).toEqual('major-some-group-slug-grouptopic');
+      expect(upgrade.branchName).toBe('major-some-group-slug-grouptopic');
     });
     it('separates patch groups and uses update topic', () => {
       const upgrade: RenovateConfig = {
@@ -71,7 +71,7 @@ describe('workers/repository/updates/branch-name', () => {
         group: {},
       };
       generateBranchName(upgrade);
-      expect(upgrade.branchName).toEqual(
+      expect(upgrade.branchName).toBe(
         'update-branch-patch-some-group-slug-update-topic'
       );
     });
@@ -83,7 +83,7 @@ describe('workers/repository/updates/branch-name', () => {
         group: {},
       };
       generateBranchName(upgrade);
-      expect(upgrade.branchName).toEqual('dep');
+      expect(upgrade.branchName).toBe('dep');
     });
     it('separates patches when separateMinorPatch=true', () => {
       const upgrade: RenovateConfig = {
@@ -102,7 +102,7 @@ describe('workers/repository/updates/branch-name', () => {
         group: {},
       };
       generateBranchName(upgrade);
-      expect(upgrade.branchName).toEqual('renovate/lodash-4.17.x');
+      expect(upgrade.branchName).toBe('renovate/lodash-4.17.x');
     });
     it('does not separate patches when separateMinorPatch=false', () => {
       const upgrade: RenovateConfig = {
@@ -121,7 +121,7 @@ describe('workers/repository/updates/branch-name', () => {
         group: {},
       };
       generateBranchName(upgrade);
-      expect(upgrade.branchName).toEqual('renovate/lodash-4.x');
+      expect(upgrade.branchName).toBe('renovate/lodash-4.x');
     });
 
     it('realistic defaults', () => {
@@ -136,7 +136,7 @@ describe('workers/repository/updates/branch-name', () => {
         group: {},
       };
       generateBranchName(upgrade);
-      expect(upgrade.branchName).toEqual('renovate/jest-42.x');
+      expect(upgrade.branchName).toBe('renovate/jest-42.x');
     });
 
     it('hashedBranchLength hashing', () => {
@@ -152,7 +152,7 @@ describe('workers/repository/updates/branch-name', () => {
         group: {},
       };
       generateBranchName(upgrade);
-      expect(upgrade.branchName).toEqual('dep-df9ca0f348');
+      expect(upgrade.branchName).toBe('dep-df9ca0f348');
     });
 
     it('hashedBranchLength hashing with group name', () => {
@@ -170,7 +170,7 @@ describe('workers/repository/updates/branch-name', () => {
         },
       };
       generateBranchName(upgrade);
-      expect(upgrade.branchName).toEqual('dep-df9ca0f34833f3e0');
+      expect(upgrade.branchName).toBe('dep-df9ca0f34833f3e0');
     });
 
     it('hashedBranchLength too short', () => {
@@ -188,7 +188,7 @@ describe('workers/repository/updates/branch-name', () => {
         },
       };
       generateBranchName(upgrade);
-      expect(upgrade.branchName).toEqual('dep-df9ca0');
+      expect(upgrade.branchName).toBe('dep-df9ca0');
     });
 
     it('enforces valid git branch name', () => {
diff --git a/lib/workers/repository/updates/generate.spec.ts b/lib/workers/repository/updates/generate.spec.ts
index 0a767cec1fc6f48cdbd20d7514461548fe867082..48da8cb6b820cd94b43851e7c2c035597c338d22 100644
--- a/lib/workers/repository/updates/generate.spec.ts
+++ b/lib/workers/repository/updates/generate.spec.ts
@@ -146,7 +146,7 @@ describe('workers/repository/updates/generate', () => {
       const res = generateBranchConfig(branch);
       expect(res.foo).toBe(2);
       expect(res.groupName).toBeDefined();
-      expect(res.releaseTimestamp).toEqual('2017-02-07T20:01:41+00:00');
+      expect(res.releaseTimestamp).toBe('2017-02-07T20:01:41+00:00');
       expect(res.automerge).toBeFalse();
       expect(res.constraints).toEqual({
         foo: '1.0.0',
@@ -191,7 +191,7 @@ describe('workers/repository/updates/generate', () => {
       expect(res.singleVersion).toBeUndefined();
       expect(res.recreateClosed).toBeTrue();
       expect(res.groupName).toBeDefined();
-      expect(res.releaseTimestamp).toEqual('2017-02-08T20:01:41+00:00');
+      expect(res.releaseTimestamp).toBe('2017-02-08T20:01:41+00:00');
     });
     it('groups multiple digest updates', () => {
       const branch = [
@@ -285,7 +285,7 @@ describe('workers/repository/updates/generate', () => {
         }),
       ];
       const res = generateBranchConfig(branch);
-      expect(res.prTitle).toEqual(
+      expect(res.prTitle).toBe(
         'chore(package): update dependency some-dep to v1.2.0'
       );
     });
@@ -309,9 +309,7 @@ describe('workers/repository/updates/generate', () => {
         }),
       ];
       const res = generateBranchConfig(branch);
-      expect(res.prTitle).toEqual(
-        'chore(): update dependency some-dep to v1.2.0'
-      );
+      expect(res.prTitle).toBe('chore(): update dependency some-dep to v1.2.0');
     });
     it('scopes monorepo commits with nested package files using parent directory', () => {
       const branch = [
@@ -334,7 +332,7 @@ describe('workers/repository/updates/generate', () => {
         }),
       ];
       const res = generateBranchConfig(branch);
-      expect(res.prTitle).toEqual(
+      expect(res.prTitle).toBe(
         'chore(bar): update dependency some-dep to v1.2.0'
       );
     });
@@ -358,7 +356,7 @@ describe('workers/repository/updates/generate', () => {
         }),
       ];
       const res = generateBranchConfig(branch);
-      expect(res.prTitle).toEqual(
+      expect(res.prTitle).toBe(
         'chore(foo/bar): update dependency some-dep to v1.2.0'
       );
     });