From d22bb0397b04f2870c6fbbeb2912ef6627e4afb7 Mon Sep 17 00:00:00 2001
From: Phil Hughes <me@iamphill.com>
Date: Tue, 28 Nov 2017 16:51:37 +0000
Subject: [PATCH] fixed failing specs

---
 .../javascripts/repo/components/repo_editor.vue     | 13 +++++++++----
 package.json                                        |  6 +++---
 .../javascripts/repo/components/repo_editor_spec.js | 10 +++++++---
 3 files changed, 19 insertions(+), 10 deletions(-)

diff --git a/app/assets/javascripts/repo/components/repo_editor.vue b/app/assets/javascripts/repo/components/repo_editor.vue
index f0fc0031e3..f37cbd1e96 100644
--- a/app/assets/javascripts/repo/components/repo_editor.vue
+++ b/app/assets/javascripts/repo/components/repo_editor.vue
@@ -6,11 +6,11 @@ import monacoLoader from '../monaco_loader';
 import Editor from '../lib/editor';
 
 export default {
-  destroyed() {
+  beforeDestroy() {
     this.editor.dispose();
   },
   mounted() {
-    if (this.monaco) {
+    if (this.editor && monaco) {
       this.initMonaco();
     } else {
       monacoLoader(['vs/editor/editor.main'], () => {
@@ -32,7 +32,7 @@ export default {
 
       this.getRawFileData(this.activeFile)
         .then(() => {
-          this.editor.createInstance(this.$el);
+          this.editor.createInstance(this.$refs.editor);
         })
         .then(() => this.setupEditor())
         .catch(() => flash('Error setting up monaco. Please try again.'));
@@ -76,9 +76,14 @@ export default {
     class="blob-viewer-container blob-editor-container"
   >
     <div
-      v-if="shouldHideEditor"
+      v-show="shouldHideEditor"
       v-html="activeFile.html"
     >
     </div>
+    <div
+      v-show="!shouldHideEditor"
+      ref="editor"
+    >
+    </div>
   </div>
 </template>
diff --git a/package.json b/package.json
index 8f06ffc1b6..3c860d5e48 100644
--- a/package.json
+++ b/package.json
@@ -75,7 +75,8 @@
     "vuex": "^3.0.1",
     "webpack": "^3.5.5",
     "webpack-bundle-analyzer": "^2.8.2",
-    "webpack-stats-plugin": "^0.1.5"
+    "webpack-stats-plugin": "^0.1.5",
+    "worker-loader": "^1.1.0"
   },
   "devDependencies": {
     "@gitlab-org/gitlab-svgs": "^1.1.1",
@@ -98,7 +99,6 @@
     "karma-sourcemap-loader": "^0.3.7",
     "karma-webpack": "^2.0.4",
     "nodemon": "^1.11.0",
-    "webpack-dev-server": "^2.6.1",
-    "worker-loader": "^1.1.0"
+    "webpack-dev-server": "^2.6.1"
   }
 }
diff --git a/spec/javascripts/repo/components/repo_editor_spec.js b/spec/javascripts/repo/components/repo_editor_spec.js
index 979d218507..81158cad63 100644
--- a/spec/javascripts/repo/components/repo_editor_spec.js
+++ b/spec/javascripts/repo/components/repo_editor_spec.js
@@ -1,12 +1,13 @@
 import Vue from 'vue';
 import store from '~/repo/stores';
 import repoEditor from '~/repo/components/repo_editor.vue';
+import monacoLoader from '~/repo/monaco_loader';
 import { file, resetStore } from '../helpers';
 
 describe('RepoEditor', () => {
   let vm;
 
-  beforeEach(() => {
+  beforeEach((done) => {
     const f = file();
     const RepoEditor = Vue.extend(repoEditor);
 
@@ -21,6 +22,10 @@ describe('RepoEditor', () => {
     vm.monaco = true;
 
     vm.$mount();
+
+    monacoLoader(['vs/editor/editor.main'], () => {
+      setTimeout(done, 0);
+    });
   });
 
   afterEach(() => {
@@ -32,7 +37,6 @@ describe('RepoEditor', () => {
   it('renders an ide container', (done) => {
     Vue.nextTick(() => {
       expect(vm.shouldHideEditor).toBeFalsy();
-      expect(vm.$el.textContent.trim()).toBe('');
 
       done();
     });
@@ -50,7 +54,7 @@ describe('RepoEditor', () => {
     });
 
     it('shows activeFile html', () => {
-      expect(vm.$el.textContent.trim()).toBe('testing');
+      expect(vm.$el.textContent).toContain('testing');
     });
   });
 });
-- 
2.30.9