supertape 6.5.0 → 6.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/ChangeLog CHANGED
@@ -1,3 +1,9 @@
1
+ 2021.09.16, v6.6.0
2
+
3
+ feature:
4
+ - (supertape) add ability to show path of a duplicate
5
+
6
+
1
7
  2021.09.15, v6.5.0
2
8
 
3
9
  feature:
package/README.md CHANGED
@@ -2,8 +2,8 @@
2
2
 
3
3
  [NPMURL]: https://npmjs.org/package/supertape "npm"
4
4
  [NPMIMGURL]: https://img.shields.io/npm/v/supertape.svg?style=flat&longCache=true
5
- [BuildStatusURL]: https://github.com/coderaiser/putout/actions?query=workflow%3A%22Node+CI%22 "Build Status"
6
- [BuildStatusIMGURL]: https://github.com/coderaiser/putout/workflows/Node%20CI/badge.svg
5
+ [BuildStatusURL]: https://github.com/coderaiser/supertape/actions?query=workflow%3A%22Node+CI%22 "Build Status"
6
+ [BuildStatusIMGURL]: https://github.com/coderaiser/supertape/workflows/Node%20CI/badge.svg
7
7
  [DependencyStatusURL]: https://david-dm.org/coderaiser/supertape?path=packages/supertape "Dependency Status"
8
8
  [DependencyStatusIMGURL]: https://img.shields.io/david/coderaiser/supertape.svg?path=packages/supertape&style=flat&longCache=true
9
9
  [CoverageURL]: https://coveralls.io/github/coderaiser/supertape?branch=master
package/lib/duplicator.js CHANGED
@@ -6,6 +6,8 @@ const StackTracey = require('stacktracey');
6
6
  const getMessage = ({message, duplicatesMessage}) => [message, duplicatesMessage];
7
7
  const getMessagesList = (tests) => tests.map(getMessage);
8
8
  const compareMessage = (a) => ([b]) => a === b;
9
+ const getDuplicatesMessage = ([, a]) => a;
10
+
9
11
  const processedList = new Set();
10
12
 
11
13
  module.exports = ({tests}) => (msg) => {
@@ -13,29 +15,27 @@ module.exports = ({tests}) => (msg) => {
13
15
  const duplicates = getMessages(tests).filter(compareMessage(msg));
14
16
 
15
17
  if (duplicates.length < 2)
16
- return '';
18
+ return [];
17
19
 
18
- const [, duplicatesMessage] = duplicates.pop();
20
+ const [duplicatesMessage, duplicateAt] = duplicates.map(getDuplicatesMessage);
19
21
 
20
22
  if (processedList.has(duplicatesMessage))
21
- return '';
23
+ return [];
22
24
 
23
25
  processedList.add(duplicatesMessage);
24
- return duplicatesMessage;
26
+ return [`Duplicate ${duplicatesMessage}`, duplicateAt];
25
27
  };
26
28
 
27
- const messages = new Set();
28
- const CALLS_FROM_TEST = 2;
29
-
30
- module.exports.getDuplicatesMessage = ({message, checkDuplicates}) => {
29
+ module.exports.getDuplicatesMessage = ({checkDuplicates}) => {
31
30
  if (!checkDuplicates)
32
31
  return '';
33
32
 
34
- if (!messages.has(message)) {
35
- messages.add(message);
36
- return '';
37
- }
38
-
33
+ return getFileName();
34
+ };
35
+
36
+ const CALLS_FROM_TEST = 3;
37
+
38
+ function getFileName() {
39
39
  const {items} = new StackTracey(Error());
40
40
 
41
41
  for (const {beforeParse, file} of items.slice(CALLS_FROM_TEST)) {
@@ -46,5 +46,4 @@ module.exports.getDuplicatesMessage = ({message, checkDuplicates}) => {
46
46
  }
47
47
 
48
48
  return '';
49
- };
50
-
49
+ }
package/lib/run-tests.js CHANGED
@@ -159,10 +159,10 @@ async function runOneTest({message, fn, extensions, formatter, count, total, fai
159
159
  failed: failed(),
160
160
  });
161
161
 
162
- const duplicateAt = getDuplicatesMessage(message);
162
+ const [duplicateMessage, duplicateAt] = getDuplicatesMessage(message);
163
163
 
164
164
  if (duplicateAt) {
165
- t.fail('Duplicate message', duplicateAt);
165
+ t.fail(duplicateMessage, duplicateAt);
166
166
  t.end();
167
167
  }
168
168
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "supertape",
3
- "version": "6.5.0",
3
+ "version": "6.6.0",
4
4
  "author": "coderaiser <mnemonic.enemy@gmail.com> (https://github.com/coderaiser)",
5
5
  "description": "tape compatible test runner with superpowers",
6
6
  "homepage": "http://github.com/coderaiser/supertape",