@bahmutov/cy-grep 1.0.0 → 1.1.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/README.md +12 -1
 - package/package.json +1 -1
 - package/src/index.d.ts +14 -0
 - package/src/support.js +34 -0
 
    
        package/README.md
    CHANGED
    
    | 
         @@ -25,7 +25,7 @@ Table of Contents 
     | 
|
| 
       25 
25 
     | 
    
         | 
| 
       26 
26 
     | 
    
         
             
            <!-- MarkdownTOC autolink="true" -->
         
     | 
| 
       27 
27 
     | 
    
         | 
| 
       28 
     | 
    
         
            -
            - [@bahmutov/cy-grep](#bahmutovcy-grep)
         
     | 
| 
      
 28 
     | 
    
         
            +
            - [@bahmutov/cy-grep ](#bahmutovcy-grep-)
         
     | 
| 
       29 
29 
     | 
    
         
             
              - [Install](#install)
         
     | 
| 
       30 
30 
     | 
    
         
             
                - [Support file](#support-file)
         
     | 
| 
       31 
31 
     | 
    
         
             
                - [Config file](#config-file)
         
     | 
| 
         @@ -49,6 +49,7 @@ Table of Contents 
     | 
|
| 
       49 
49 
     | 
    
         
             
              - [TypeScript support](#typescript-support)
         
     | 
| 
       50 
50 
     | 
    
         
             
              - [General advice](#general-advice)
         
     | 
| 
       51 
51 
     | 
    
         
             
              - [DevTools console](#devtools-console)
         
     | 
| 
      
 52 
     | 
    
         
            +
                - [grepFailed](#grepfailed)
         
     | 
| 
       52 
53 
     | 
    
         
             
              - [Debugging](#debugging)
         
     | 
| 
       53 
54 
     | 
    
         
             
                - [Log messages](#log-messages)
         
     | 
| 
       54 
55 
     | 
    
         
             
                - [Debugging in the plugin](#debugging-in-the-plugin)
         
     | 
| 
         @@ -494,6 +495,16 @@ Cypress.grep('hello', '@smoke', 10) 
     | 
|
| 
       494 
495 
     | 
    
         | 
| 
       495 
496 
     | 
    
         
             
            - to remove the grep strings enter `Cypress.grep()`
         
     | 
| 
       496 
497 
     | 
    
         | 
| 
      
 498 
     | 
    
         
            +
            ### grepFailed
         
     | 
| 
      
 499 
     | 
    
         
            +
             
     | 
| 
      
 500 
     | 
    
         
            +
            Once the tests finish, you can run just the failed tests from DevTools console
         
     | 
| 
      
 501 
     | 
    
         
            +
             
     | 
| 
      
 502 
     | 
    
         
            +
            ```text
         
     | 
| 
      
 503 
     | 
    
         
            +
            > Cypress.grepFailed()
         
     | 
| 
      
 504 
     | 
    
         
            +
            ```
         
     | 
| 
      
 505 
     | 
    
         
            +
             
     | 
| 
      
 506 
     | 
    
         
            +
            **Tip:** use `Cypress.grep()` to reset and run all the tests
         
     | 
| 
      
 507 
     | 
    
         
            +
             
     | 
| 
       497 
508 
     | 
    
         
             
            ## Debugging
         
     | 
| 
       498 
509 
     | 
    
         | 
| 
       499 
510 
     | 
    
         
             
            When debugging a problem, first make sure you are using the expected version of this plugin, as some features might be only available in the [later releases](https://github.com/cypress-io/cypress-grep/releases).
         
     | 
    
        package/package.json
    CHANGED
    
    
    
        package/src/index.d.ts
    CHANGED
    
    | 
         @@ -26,6 +26,20 @@ declare namespace Cypress { 
     | 
|
| 
       26 
26 
     | 
    
         
             
              }
         
     | 
| 
       27 
27 
     | 
    
         | 
| 
       28 
28 
     | 
    
         
             
              interface Cypress {
         
     | 
| 
      
 29 
     | 
    
         
            +
                /**
         
     | 
| 
      
 30 
     | 
    
         
            +
                 * Runs only the tests that contain the given "grep" string
         
     | 
| 
      
 31 
     | 
    
         
            +
                 * in the title, or have specific tags.
         
     | 
| 
      
 32 
     | 
    
         
            +
                 * @param grep Part of the test title
         
     | 
| 
      
 33 
     | 
    
         
            +
                 * @param tags Tags to filter tests by
         
     | 
| 
      
 34 
     | 
    
         
            +
                 * @param burn Number of times to repeat each test
         
     | 
| 
      
 35 
     | 
    
         
            +
                 */
         
     | 
| 
       29 
36 
     | 
    
         
             
                grep?: (grep?: string, tags?: string, burn?: string) => void
         
     | 
| 
      
 37 
     | 
    
         
            +
                /**
         
     | 
| 
      
 38 
     | 
    
         
            +
                 * Take the current test statuses and run only the failed tests.
         
     | 
| 
      
 39 
     | 
    
         
            +
                 * Run this static method from the DevTools console.
         
     | 
| 
      
 40 
     | 
    
         
            +
                 * Tip: use Cypress.grep() to reset and run all tests.
         
     | 
| 
      
 41 
     | 
    
         
            +
                 * @example Cypress.grepFailed()
         
     | 
| 
      
 42 
     | 
    
         
            +
                 */
         
     | 
| 
      
 43 
     | 
    
         
            +
                grepFailed?: () => void
         
     | 
| 
       30 
44 
     | 
    
         
             
              }
         
     | 
| 
       31 
45 
     | 
    
         
             
            }
         
     | 
    
        package/src/support.js
    CHANGED
    
    | 
         @@ -253,4 +253,38 @@ if (!Cypress.grep) { 
     | 
|
| 
       253 
253 
     | 
    
         
             
              }
         
     | 
| 
       254 
254 
     | 
    
         
             
            }
         
     | 
| 
       255 
255 
     | 
    
         | 
| 
      
 256 
     | 
    
         
            +
            if (!Cypress.grepFailed) {
         
     | 
| 
      
 257 
     | 
    
         
            +
              Cypress.grepFailed = function () {
         
     | 
| 
      
 258 
     | 
    
         
            +
                // @ts-ignore
         
     | 
| 
      
 259 
     | 
    
         
            +
                let root = Cypress.state('runnable')
         
     | 
| 
      
 260 
     | 
    
         
            +
                while (root.parent) {
         
     | 
| 
      
 261 
     | 
    
         
            +
                  root = root.parent
         
     | 
| 
      
 262 
     | 
    
         
            +
                }
         
     | 
| 
      
 263 
     | 
    
         
            +
                const failedTestTitles = []
         
     | 
| 
      
 264 
     | 
    
         
            +
             
     | 
| 
      
 265 
     | 
    
         
            +
                function findFailedTests(suite) {
         
     | 
| 
      
 266 
     | 
    
         
            +
                  suite.tests.forEach((test) => {
         
     | 
| 
      
 267 
     | 
    
         
            +
                    if (test.state === 'failed') {
         
     | 
| 
      
 268 
     | 
    
         
            +
                      // TODO use the full test title
         
     | 
| 
      
 269 
     | 
    
         
            +
                      failedTestTitles.push(test.title)
         
     | 
| 
      
 270 
     | 
    
         
            +
                    }
         
     | 
| 
      
 271 
     | 
    
         
            +
                  })
         
     | 
| 
      
 272 
     | 
    
         
            +
                  suite.suites.forEach((suite) => {
         
     | 
| 
      
 273 
     | 
    
         
            +
                    findFailedTests(suite)
         
     | 
| 
      
 274 
     | 
    
         
            +
                  })
         
     | 
| 
      
 275 
     | 
    
         
            +
                }
         
     | 
| 
      
 276 
     | 
    
         
            +
                findFailedTests(root)
         
     | 
| 
      
 277 
     | 
    
         
            +
             
     | 
| 
      
 278 
     | 
    
         
            +
                if (!failedTestTitles.length) {
         
     | 
| 
      
 279 
     | 
    
         
            +
                  console.log('No failed tests found')
         
     | 
| 
      
 280 
     | 
    
         
            +
                } else {
         
     | 
| 
      
 281 
     | 
    
         
            +
                  console.log('running only the failed tests')
         
     | 
| 
      
 282 
     | 
    
         
            +
                  console.log(failedTestTitles)
         
     | 
| 
      
 283 
     | 
    
         
            +
                  const grepTitles = failedTestTitles.join(';')
         
     | 
| 
      
 284 
     | 
    
         
            +
                  // @ts-ignore
         
     | 
| 
      
 285 
     | 
    
         
            +
                  Cypress.grep(grepTitles)
         
     | 
| 
      
 286 
     | 
    
         
            +
                }
         
     | 
| 
      
 287 
     | 
    
         
            +
              }
         
     | 
| 
      
 288 
     | 
    
         
            +
            }
         
     | 
| 
      
 289 
     | 
    
         
            +
             
     | 
| 
       256 
290 
     | 
    
         
             
            module.exports = cypressGrep
         
     |