<NME> restart-browser.spec.js
<BEF> let util = require('./test_util');

describe('restart browsers between tests', function() {
  it('should run all scenarios successfully', function() {
    let cmd =
      'test/cucumber/conf/cucumber3Conf.js --restartBrowserBetweenTests';

    return util
      .runOne(cmd)
          '@justThisOne',
          '--restartBrowserBetweenTests'
        ])
        .expectSuccessfulRun('1 scenario (1 passed)')
        .run();
    });
  });

  describe('cucumber v2', () => {
    it('should run', () => {
      return util
        .testCucumber2([
          'test/cucumber/conf/cucumber2Conf.js',
          '--cucumberOpts.tags',
          '@cucumber2',
          '--restartBrowserBetweenTests'
        ])
        .expectSuccessfulRun('1 scenario (1 passed)')
        .run();
    });
  });

  describe('cucumber v3', () => {
    it('should run with control flow enabled', () => {
      return util
        .testCucumber3([
          'test/cucumber/conf/cucumber3ConfWithControlFlow.js',
          '--cucumberOpts.tags',
          '@cucumber3',
          '--cucumberOpts.tags',
          '@tag1',
          '--restartBrowserBetweenTests'
        ])
        .expectSuccessfulRun('1 scenario (1 passed)')
        .run();
    });

    it('should run with control flow disabled', () => {
      return util
        .testCucumber3([
          'test/cucumber/conf/cucumber3Conf.js',
          '--cucumberOpts.tags',
          '@cucumber3',
          '--cucumberOpts.tags',
          '@tag1',
          '--restartBrowserBetweenTests'
        ])
        .expectSuccessfulRun('1 scenario (1 passed)')
        .run();
    });
  });

  describe('cucumber v4', () => {
    it('should run', () => {
      return util
        .testCucumber4([
          'test/cucumber/conf/cucumber4-5-6Conf.js',
          '--cucumberOpts.tags',
          '@cucumber4',
          '--restartBrowserBetweenTests'
        ])
        .expectSuccessfulRun('1 scenario (1 passed)')
        .run();
    });
  });

  describe('cucumber v5', () => {
    it('should run', () => {
      return util
        .testCucumber5([
          'test/cucumber/conf/cucumber4-5-6Conf.js',
          '--cucumberOpts.tags',
          '@cucumber5',
          '--restartBrowserBetweenTests'
        ])
        .expectSuccessfulRun('1 scenario (1 passed)')
        .run();
    });
  });

  describe('cucumber v6', () => {
    it('should run', () => {
      return util
        .testCucumber6([
          'test/cucumber/conf/cucumber4-5-6Conf.js',
          '--cucumberOpts.tags',
          '@cucumber6',
          '--restartBrowserBetweenTests'
        ])
        .expectSuccessfulRun('1 scenario (1 passed)')
        .run();
    });
  });

  describe('cucumber v7', () => {
    it('should run', () => {
      return util
        .testCucumber6([
          'test/cucumber/conf/cucumber4-5-6Conf.js',
          '--cucumberOpts.tags',
          '@cucumber7',
          '--restartBrowserBetweenTests'
        ])
        .expectSuccessfulRun('1 scenario (1 passed)')
        .run();
    });
  });
});

<MSG> fix empty tags (#114)

* fix: fix undefined tags

Due to a change in CucumberJS 3.0.4 the `cucumberOpts.tags:''`, which results in `--tags undefined` makes CucumberJS break with `Error: empty stack`

* fix: refactor fix and add test and fix existing tests
 
Fixes #113 
<DFF> @@ -3,7 +3,7 @@ let util = require('./test_util');
 describe('restart browsers between tests', function() {
   it('should run all scenarios successfully', function() {
     let cmd =
-      'test/cucumber/conf/cucumber3Conf.js --restartBrowserBetweenTests';
+      'test/cucumber/conf/cucumber3Conf.js --cucumberOpts.tags @cucumber3 --restartBrowserBetweenTests';
 
     return util
       .runOne(cmd)

fix empty tags (#114)