From dca767f7578c2711ee13915c33498319bf4f1dec Mon Sep 17 00:00:00 2001
From: Oleksandr Miroshnichenko <omiroshnichenko@magento.com>
Date: Wed, 19 Oct 2016 16:59:34 +0300
Subject: [PATCH] MAGETWO-59870: Grunt spec task runs on incorrect ports for
 several areas

---
 dev/tests/js/jasmine/spec_runner/index.js     | 38 +++++--------------
 .../js/jasmine/spec_runner/tasks/jasmine.js   |  7 +++-
 2 files changed, 16 insertions(+), 29 deletions(-)

diff --git a/dev/tests/js/jasmine/spec_runner/index.js b/dev/tests/js/jasmine/spec_runner/index.js
index ce57b6c354c..d8329bb3517 100644
--- a/dev/tests/js/jasmine/spec_runner/index.js
+++ b/dev/tests/js/jasmine/spec_runner/index.js
@@ -13,38 +13,14 @@ function init(grunt, options) {
         stripJsonComments   = require('strip-json-comments'),
         path                = require('path'),
         config,
-        themes;
-        
+        themes,
+        file;
+
     config = grunt.file.read(__dirname + '/settings.json');
     config = stripJsonComments(config);
     config = JSON.parse(config);
 
-    //themes = require(path.resolve(process.cwd(), config.themes));
-    //TODO: MAGETWO-39843
-    themes = {
-        blank: {
-            area: 'frontend',
-            name: 'Magento/blank',
-            locale: 'en_US',
-            files: [
-                'css/styles-m',
-                'css/styles-l',
-                'css/email',
-                'css/email-inline'
-            ],
-            dsl: 'less'
-        },
-        backend: {
-            area: 'adminhtml',
-            name: 'Magento/backend',
-            locale: 'en_US',
-            files: [
-                'css/styles-old',
-                'css/styles'
-            ],
-            dsl: 'less'
-        }
-    }
+    themes = require(path.resolve(process.cwd(), config.themes));
 
     if (options.theme) {
         themes = _.pick(themes, options.theme);
@@ -54,6 +30,12 @@ function init(grunt, options) {
 
     config.themes = themes;
 
+    file = grunt.option('file');
+
+    if (file) {
+        config.singleTest = file;
+    }
+
     enableTasks(grunt, config);
 }
 
diff --git a/dev/tests/js/jasmine/spec_runner/tasks/jasmine.js b/dev/tests/js/jasmine/spec_runner/tasks/jasmine.js
index ccd21fafe33..99f05198000 100644
--- a/dev/tests/js/jasmine/spec_runner/tasks/jasmine.js
+++ b/dev/tests/js/jasmine/spec_runner/tasks/jasmine.js
@@ -16,7 +16,6 @@ function init(config) {
     root         = config.root;
     port         = config.port;
     files        = config.files;
-    host         = _.template(config.host)({ port: port });
     themes       = config.themes;
 
     _.each(themes, function (themeData, themeName) {
@@ -26,7 +25,13 @@ function init(config) {
 
         _.extend(themeData, { root: root });
 
+        host    = _.template(config.host)({ port: port++ });
         render  = renderTemplate.bind(null, themeData);
+
+        if (config.singleTest) {
+            files.specs = [config.singleTest];
+        }
+
         specs   = files.specs.map(render);
         specs   = expand(specs).map(cutJsExtension);
         configs = files.requirejsConfigs.map(render);
-- 
GitLab