Browse Source

HUE-7223 [autocomplete] Fix issue where the old autocompleter inserts extra characters on exception

Johan Ahlen 8 years ago
parent
commit
deac508

+ 0 - 1
desktop/core/src/desktop/static/desktop/js/autocompleter.js

@@ -83,7 +83,6 @@ var Autocompleter = (function () {
       }, editor);
     } catch (err) {
       editor.hideSpinner();
-      throw err;
     }
   };
 

+ 60 - 0
desktop/core/src/desktop/static/desktop/spec/autocompleterSpec.js

@@ -0,0 +1,60 @@
+// Licensed to Cloudera, Inc. under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  Cloudera, Inc. 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.
+(function() {
+
+  describe('autocompleter.js', function () {
+
+    it('should not throw exceptions', function (done) {
+      var subject = new Autocompleter({
+        snippet: {
+          isSqlDialect: function () { return true },
+          type: ko.observable('hive'),
+          database: function() { return 'default'; },
+          getApiHelper: function () {
+            return {
+              loadDatabases: function (options) {
+                options.successCallback(['bla', undefined])
+              }
+            };
+          }
+        },
+        useNewAutocompleter: true
+      });
+
+      try {
+        subject.getCompletions({
+          getTextBeforeCursor: function () {
+            return 'SELECT * FROM (SELECT * FROM tbl) a JOIN (SELECT * FROM tbl) b ON a.c=';
+          },
+          getTextAfterCursor: function () {
+            return '';
+          },
+          hideSpinner: function () {
+            expect(true).toBeTruthy(); // Prevent jasmine warning
+            done();
+          },
+          showSpinner: function () {}
+        }, undefined, undefined, undefined, function () {
+          expect(true).toBeTruthy(); // Prevent jasmine warning
+          done();
+        });
+      } catch (e) {
+        expect(false).toBeTruthy('Got unexpected exception');
+        done();
+      }
+    });
+  });
+})();

+ 3 - 0
desktop/core/src/desktop/templates/jasmineRunner.html

@@ -89,6 +89,9 @@
   <script type="text/javascript" src="../static/desktop/js/sqlAutocompleter2.js"></script>
   <script type="text/javascript" src="../static/desktop/spec/sqlAutocompleter2Spec.js"></script>
 
+  <script type="text/javascript" src="../static/desktop/js/autocompleter.js"></script>
+  <script type="text/javascript" src="../static/desktop/spec/autocompleterSpec.js"></script>
+
   <script type="text/javascript" src="../static/desktop/js/sqlUtils.js"></script>
   <script type="text/javascript" src="../static/desktop/js/sqlAutocompleter3.js"></script>
   <script type="text/javascript" src="../static/desktop/spec/sqlAutocompleter3Spec.js"></script>