You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by pa...@apache.org on 2016/06/08 10:13:58 UTC
ambari git commit: AMBARI-17060. Visual explain unit tests (pallavkul)
Repository: ambari
Updated Branches:
refs/heads/trunk 6e762a04d -> 1067a831f
AMBARI-17060. Visual explain unit tests (pallavkul)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/1067a831
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/1067a831
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/1067a831
Branch: refs/heads/trunk
Commit: 1067a831f9ce1932d848d4125214451e04f7a66a
Parents: 6e762a0
Author: Pallav Kulshreshtha <pa...@gmail.com>
Authored: Wed Jun 8 15:43:27 2016 +0530
Committer: Pallav Kulshreshtha <pa...@gmail.com>
Committed: Wed Jun 8 15:43:27 2016 +0530
----------------------------------------------------------------------
.../ui/hive-web/app/templates/databases.hbs | 4 +-
.../ui/hive-web/tests/helpers/api-mock.js | 13 ++
.../ui/hive-web/tests/helpers/dbclick.js | 26 ++++
.../hive-web/tests/integration/database-test.js | 27 ++++
.../tests/integration/query-editor-test.js | 20 +++
.../tests/integration/saved-queries-test.js | 30 ++++-
.../ui/hive-web/tests/integration/udfs-test.js | 18 +++
.../tests/unit/components/udf-tr-view-test.js | 122 +++++++++++++++++++
.../tests/unit/controllers/udfs-test.js | 26 +++-
9 files changed, 280 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/1067a831/contrib/views/hive/src/main/resources/ui/hive-web/app/templates/databases.hbs
----------------------------------------------------------------------
diff --git a/contrib/views/hive/src/main/resources/ui/hive-web/app/templates/databases.hbs b/contrib/views/hive/src/main/resources/ui/hive-web/app/templates/databases.hbs
index 290cdac..3997ea8 100644
--- a/contrib/views/hive/src/main/resources/ui/hive-web/app/templates/databases.hbs
+++ b/contrib/views/hive/src/main/resources/ui/hive-web/app/templates/databases.hbs
@@ -29,7 +29,7 @@
<hr />
{{#if selectedDatabase}}
- {{extended-input class="form-control input-sm mozBoxSizeFix"
+ {{extended-input class="form-control input-sm mozBoxSizeFix input-sm search-tables-text"
placeholderTranslation="placeholders.search.tables"
valueSearched="searchTables"
value=tableSearchTerm}}
@@ -39,7 +39,7 @@
{{#if tableSearchResults.tables}}
- {{extended-input class="form-control input-sm mozBoxSizeFix"
+ {{extended-input class="form-control input-sm mozBoxSizeFix search-columns-text"
placeholderTranslation="placeholders.search.columns"
valueSearched="searchColumns"
value=columnSearchTerm}}
http://git-wip-us.apache.org/repos/asf/ambari/blob/1067a831/contrib/views/hive/src/main/resources/ui/hive-web/tests/helpers/api-mock.js
----------------------------------------------------------------------
diff --git a/contrib/views/hive/src/main/resources/ui/hive-web/tests/helpers/api-mock.js b/contrib/views/hive/src/main/resources/ui/hive-web/tests/helpers/api-mock.js
index ed4822d..5bf41e6 100644
--- a/contrib/views/hive/src/main/resources/ui/hive-web/tests/helpers/api-mock.js
+++ b/contrib/views/hive/src/main/resources/ui/hive-web/tests/helpers/api-mock.js
@@ -246,6 +246,15 @@ export default function() {
return [200, {"Content-Type": "application/json"}, JSON.stringify(files)];
});
+ this.delete(baseUrl + '/fileResources/1', function (req) {
+ return [200, {"Content-Type": "application/json"}, JSON.stringify({})];
+ });
+
+ this.put(baseUrl + '/udfs/1', function (req) {
+ return [200, {"Content-Type": "application/json"}, JSON.stringify({})];
+ });
+
+
this.get(baseUrl + '/fileResources/1', function (req) {
var files = {
"fileResources": [
@@ -274,6 +283,10 @@ export default function() {
return [200, {"Content-Type": "application/json"}, JSON.stringify(data)];
});
+ this.delete(baseUrl + '/savedQueries/1', function (req) {
+ return [200, {"Content-Type": "application/json"}, JSON.stringify({})];
+ });
+
this.get(baseUrl + '/api/v1/views/TEZ/versions/1', function (req) {
var data = {
instances: [
http://git-wip-us.apache.org/repos/asf/ambari/blob/1067a831/contrib/views/hive/src/main/resources/ui/hive-web/tests/helpers/dbclick.js
----------------------------------------------------------------------
diff --git a/contrib/views/hive/src/main/resources/ui/hive-web/tests/helpers/dbclick.js b/contrib/views/hive/src/main/resources/ui/hive-web/tests/helpers/dbclick.js
new file mode 100644
index 0000000..e6dfe83
--- /dev/null
+++ b/contrib/views/hive/src/main/resources/ui/hive-web/tests/helpers/dbclick.js
@@ -0,0 +1,26 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+Ember.Test.registerAsyncHelper('dblclick',
+ function (app, selector, context) {
+ var $el = findWithAssert(selector, context);
+ Ember.run(function () {
+ $el.dblclick();
+ });
+ }
+);
http://git-wip-us.apache.org/repos/asf/ambari/blob/1067a831/contrib/views/hive/src/main/resources/ui/hive-web/tests/integration/database-test.js
----------------------------------------------------------------------
diff --git a/contrib/views/hive/src/main/resources/ui/hive-web/tests/integration/database-test.js b/contrib/views/hive/src/main/resources/ui/hive-web/tests/integration/database-test.js
index 52cda77..1af72c8 100644
--- a/contrib/views/hive/src/main/resources/ui/hive-web/tests/integration/database-test.js
+++ b/contrib/views/hive/src/main/resources/ui/hive-web/tests/integration/database-test.js
@@ -101,3 +101,30 @@ test('Searching for a table will display table results and column search field',
});
});
});
+
+
+test('Users can search tables', function (assert) {
+ assert.expect(4);
+
+ visit('/');
+
+ andThen(function () {
+ fillIn(find('.database-explorer .search-tables-text'), 'not_found');
+ keyEvent(find('.database-explorer .search-tables-text'), 'keyup', 13);
+ });
+
+ andThen(function () {
+ assert.ok(find('.alert-warning .database-explorer-alert'), 'Alert is show when a table is not found');
+ });
+
+ andThen(function () {
+ fillIn(find('.database-explorer .search-tables-text'), 'table');
+ keyEvent(find('.database-explorer .search-tables-text'), 'keyup', 13);
+ });
+
+ andThen(function () {
+ assert.ok(find('.database-explorer .nav-tabs li:last').hasClass('active'), 'Search results tab is active');
+ assert.ok(find('.database-explorer .databases .fa-database').length, 'Found databases are shown');
+ assert.ok(find('.database-explorer .databases .tables').length, 'Found tables are shown');
+ });
+});
http://git-wip-us.apache.org/repos/asf/ambari/blob/1067a831/contrib/views/hive/src/main/resources/ui/hive-web/tests/integration/query-editor-test.js
----------------------------------------------------------------------
diff --git a/contrib/views/hive/src/main/resources/ui/hive-web/tests/integration/query-editor-test.js b/contrib/views/hive/src/main/resources/ui/hive-web/tests/integration/query-editor-test.js
index b409e12..3073013 100644
--- a/contrib/views/hive/src/main/resources/ui/hive-web/tests/integration/query-editor-test.js
+++ b/contrib/views/hive/src/main/resources/ui/hive-web/tests/integration/query-editor-test.js
@@ -20,6 +20,7 @@ import Ember from 'ember';
import { test } from 'ember-qunit';
import startApp from '../helpers/start-app';
import api from '../helpers/api-mock';
+import '../helpers/dbclick';
var App;
var server;
@@ -104,3 +105,22 @@ test('Can save query', function() {
click('.modal-footer .btn-danger');
});
+
+test('Can change tab title', function (assert) {
+ assert.expect(1);
+
+ visit('/');
+
+ andThen(function () {
+ dblclick('.query-editor-panel tabs li:first a');
+
+ andThen(function () {
+ fillIn('.modal-body input', 'WS');
+ click('.modal-footer .btn-success');
+
+ andThen(function () {
+ assert.equal(find('.query-editor-panel tabs li:first a').text().trim(), 'WS', 'Tab renamed');
+ });
+ });
+ });
+});
http://git-wip-us.apache.org/repos/asf/ambari/blob/1067a831/contrib/views/hive/src/main/resources/ui/hive-web/tests/integration/saved-queries-test.js
----------------------------------------------------------------------
diff --git a/contrib/views/hive/src/main/resources/ui/hive-web/tests/integration/saved-queries-test.js b/contrib/views/hive/src/main/resources/ui/hive-web/tests/integration/saved-queries-test.js
index c444523..fdbcd4e 100644
--- a/contrib/views/hive/src/main/resources/ui/hive-web/tests/integration/saved-queries-test.js
+++ b/contrib/views/hive/src/main/resources/ui/hive-web/tests/integration/saved-queries-test.js
@@ -117,10 +117,36 @@ test('Saved Query options menu', function() {
expect(2);
visit("/queries");
- click('.fa-gear');
+ click('.fa-gear:first');
andThen(function() {
equal(find('.dropdown-menu:visible').length, 1, 'Query menu is visible');
equal(find('.dropdown-menu:visible li').length, 2, 'Query menu has 2 options');
});
-});
\ No newline at end of file
+});
+
+test('User is able to see history for a query', function (assert) {
+ assert.expect(2);
+
+ visit("/queries");
+ click('.fa-gear:first');
+ click('.dropdown-menu:visible li:first');
+
+ andThen(function () {
+ assert.equal(currentURL(), "/history", 'User is redirected to history');
+ assert.equal(find('#content .table tbody tr').length, 1, 'Queries are filtered');
+ });
+});
+
+test('User is able to delete a query', function (assert) {
+ assert.expect(1);
+
+ visit("/queries");
+ click('.fa-gear:first');
+ click('.dropdown-menu:visible li:last');
+ click('.modal-footer .btn-success');
+
+ andThen(function () {
+ equal(find('#content .table tbody tr').length, 1, 'Query deleted');
+ });
+});
http://git-wip-us.apache.org/repos/asf/ambari/blob/1067a831/contrib/views/hive/src/main/resources/ui/hive-web/tests/integration/udfs-test.js
----------------------------------------------------------------------
diff --git a/contrib/views/hive/src/main/resources/ui/hive-web/tests/integration/udfs-test.js b/contrib/views/hive/src/main/resources/ui/hive-web/tests/integration/udfs-test.js
index 95a0043..526efc0 100644
--- a/contrib/views/hive/src/main/resources/ui/hive-web/tests/integration/udfs-test.js
+++ b/contrib/views/hive/src/main/resources/ui/hive-web/tests/integration/udfs-test.js
@@ -89,3 +89,21 @@ test('User is able to add udf', function() {
equal(find('#content .table tbody tr').length, 3);
});
});
+
+
+test('Can delete file resource', function (assert) {
+ assert.expect(1);
+
+ visit('/udfs');
+ click('.fa-gear:first');
+ click('.dropdown-menu li:first');
+ click('.dropdown-toggle:first');
+ click('.fa-remove:first');
+
+ andThen(function () {
+ click('.modal-footer .btn-success');
+ click('tr.ember-view:first .btn-success');
+ });
+
+ assert.equal($('tr.ember-view:first td:first').text().trim().length, 0, 'File Resource Deleted');
+});
http://git-wip-us.apache.org/repos/asf/ambari/blob/1067a831/contrib/views/hive/src/main/resources/ui/hive-web/tests/unit/components/udf-tr-view-test.js
----------------------------------------------------------------------
diff --git a/contrib/views/hive/src/main/resources/ui/hive-web/tests/unit/components/udf-tr-view-test.js b/contrib/views/hive/src/main/resources/ui/hive-web/tests/unit/components/udf-tr-view-test.js
new file mode 100644
index 0000000..18916de
--- /dev/null
+++ b/contrib/views/hive/src/main/resources/ui/hive-web/tests/unit/components/udf-tr-view-test.js
@@ -0,0 +1,122 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import Ember from 'ember';
+import { moduleForComponent, test } from 'ember-qunit';
+
+moduleForComponent('udf-tr-view', 'UdfTrViewComponent', {
+ unit: true,
+ needs: ['component:select-widget']
+});
+
+test('Can send actions', function (assert) {
+ assert.expect(6);
+
+ var targetObject = {
+ onDeleteUdf: function () {
+ assert.ok(true, 'onDeleteUdf called');
+ },
+ onAddFileResource: function () {
+ assert.ok(true, 'onAddFileResource called');
+ },
+ onDeleteFileResource: function () {
+ assert.ok(true, 'onDeleteFileResource called');
+ },
+ onSaveUdf: function () {
+ assert.ok(true, 'onSaveUdf called');
+ },
+ };
+
+ var component = this.subject({
+ onDeleteUdf: 'onDeleteUdf',
+ onAddFileResource: 'onAddFileResource',
+ onDeleteFileResource: 'onDeleteFileResource',
+ onSaveUdf: 'onSaveUdf',
+
+ targetObject: targetObject,
+
+ udf: Ember.Object.create()
+ });
+
+ Ember.run(function () {
+ component.send('deleteUdf');
+ component.send('addFileResource');
+ component.send('deleteFileResource');
+ component.send('save');
+
+ component.send('editUdf');
+ component.send('editFileResource', {});
+ });
+
+ assert.ok(component.get('udf.isEditing'), 'Can edit udf');
+ assert.ok(component.get('udf.isEditingResource'), 'Can edit resource');
+});
+
+test('It sets isEditing to true if udf.isNew', function (assert) {
+ assert.expect(1);
+
+ var component = this.subject({
+ udf: Ember.Object.create({
+ isNew: true,
+ isEditing: false
+ })
+ });
+
+ var $component = this.render();
+ assert.ok(component.get('udf.isEditing'), 'isEditing set to true');
+});
+
+test('Cancel edit whould rollback changes', function (assert) {
+ assert.expect(5);
+
+ var backup = 'fileResource backup';
+ var file = Ember.Object.create({
+ rollback: function () {
+ assert.ok(true, 'file.rollback() called');
+ }
+ });
+
+ var udf = Ember.Object.create({
+ isEditing: true,
+ isEditingResource: true,
+ get: function () {
+ var defer = new Ember.RSVP.defer;
+ defer.resolve(file);
+
+ return defer.promise;
+ },
+ rollback: function () {
+ assert.ok(true, 'udf.rollback() called');
+ }
+ });
+
+ var component = this.subject({
+ file: file,
+ udf: udf,
+ fileBackup: backup
+ });
+
+ Ember.run(function () {
+ component.send('cancel');
+ });
+
+ assert.ok(!component.get('udf.isEditing'), 'isEditing set to false');
+ assert.ok(!component.get('udf.isEditingResource'), 'isEditingResource set to false');
+
+ assert.equal(component.get('udf.fileResource'), backup, 'backup is set as file resource');
+});
http://git-wip-us.apache.org/repos/asf/ambari/blob/1067a831/contrib/views/hive/src/main/resources/ui/hive-web/tests/unit/controllers/udfs-test.js
----------------------------------------------------------------------
diff --git a/contrib/views/hive/src/main/resources/ui/hive-web/tests/unit/controllers/udfs-test.js b/contrib/views/hive/src/main/resources/ui/hive-web/tests/unit/controllers/udfs-test.js
index 5bd369e..2568d4a 100644
--- a/contrib/views/hive/src/main/resources/ui/hive-web/tests/unit/controllers/udfs-test.js
+++ b/contrib/views/hive/src/main/resources/ui/hive-web/tests/unit/controllers/udfs-test.js
@@ -19,7 +19,11 @@
import Ember from 'ember';
import { moduleFor, test } from 'ember-qunit';
-moduleFor('controller:udfs', 'UdfsController', {});
+moduleFor('controller:udfs', 'UdfsController', {
+ needs: [
+ 'model:file-resource'
+ ]
+});
test('controller is initialized', function() {
expect(3);
@@ -57,4 +61,22 @@ test('add', function() {
Ember.run(function () {
component.send('add');
});
-});
\ No newline at end of file
+});
+
+test('handleAddFileResource', function (assert) {
+ assert.expect(2);
+
+ var udf = Ember.Object.create({
+ isEditingResource: false,
+ fileResource: null
+ });
+
+ var controller = this.subject();
+
+ Ember.run(function () {
+ controller.send('handleAddFileResource', udf);
+ });
+
+ assert.ok(udf.get('fileResource'), 'File Resource created');
+ assert.ok(udf.get('isEditingResource'), 'Editing mode in enabled');
+});