Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
2ec6a7e1
Commit
2ec6a7e1
authored
6 years ago
by
Phil Hughes
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixed markdown preview in IDE not working for new files
parent
23fb465c
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
49 additions
and
11 deletions
+49
-11
app/assets/javascripts/ide/components/repo_editor.vue
app/assets/javascripts/ide/components/repo_editor.vue
+2
-2
spec/javascripts/ide/components/repo_editor_spec.js
spec/javascripts/ide/components/repo_editor_spec.js
+37
-0
spec/javascripts/test_bundle.js
spec/javascripts/test_bundle.js
+10
-9
No files found.
app/assets/javascripts/ide/components/repo_editor.vue
View file @
2ec6a7e1
...
@@ -22,7 +22,7 @@ export default {
...
@@ -22,7 +22,7 @@ export default {
...
mapState
([
'
rightPanelCollapsed
'
,
'
viewer
'
,
'
delayViewerUpdated
'
,
'
panelResizing
'
]),
...
mapState
([
'
rightPanelCollapsed
'
,
'
viewer
'
,
'
delayViewerUpdated
'
,
'
panelResizing
'
]),
...
mapGetters
([
'
currentMergeRequest
'
]),
...
mapGetters
([
'
currentMergeRequest
'
]),
shouldHideEditor
()
{
shouldHideEditor
()
{
return
this
.
file
&&
this
.
file
.
binary
&&
!
this
.
file
.
raw
;
return
this
.
file
&&
this
.
file
.
binary
&&
!
this
.
file
.
content
;
},
},
editTabCSS
()
{
editTabCSS
()
{
return
{
return
{
...
@@ -212,7 +212,7 @@ export default {
...
@@ -212,7 +212,7 @@ export default {
<content-viewer
<content-viewer
v-if=
"shouldHideEditor || file.viewMode === 'preview'"
v-if=
"shouldHideEditor || file.viewMode === 'preview'"
:content=
"file.content || file.raw"
:content=
"file.content || file.raw"
:path=
"file.rawPath"
:path=
"file.rawPath
|| file.path
"
:file-size=
"file.size"
:file-size=
"file.size"
:project-path=
"file.projectId"
/>
:project-path=
"file.projectId"
/>
</div>
</div>
...
...
This diff is collapsed.
Click to expand it.
spec/javascripts/ide/components/repo_editor_spec.js
View file @
2ec6a7e1
import
Vue
from
'
vue
'
;
import
Vue
from
'
vue
'
;
import
MockAdapter
from
'
axios-mock-adapter
'
;
import
axios
from
'
~/lib/utils/axios_utils
'
;
import
store
from
'
~/ide/stores
'
;
import
store
from
'
~/ide/stores
'
;
import
repoEditor
from
'
~/ide/components/repo_editor.vue
'
;
import
repoEditor
from
'
~/ide/components/repo_editor.vue
'
;
import
monacoLoader
from
'
~/ide/monaco_loader
'
;
import
monacoLoader
from
'
~/ide/monaco_loader
'
;
import
Editor
from
'
~/ide/lib/editor
'
;
import
Editor
from
'
~/ide/lib/editor
'
;
import
{
createComponentWithStore
}
from
'
../../helpers/vue_mount_component_helper
'
;
import
{
createComponentWithStore
}
from
'
../../helpers/vue_mount_component_helper
'
;
import
setTimeoutPromise
from
'
../../helpers/set_timeout_promise_helper
'
;
import
{
file
,
resetStore
}
from
'
../helpers
'
;
import
{
file
,
resetStore
}
from
'
../helpers
'
;
describe
(
'
RepoEditor
'
,
()
=>
{
describe
(
'
RepoEditor
'
,
()
=>
{
...
@@ -79,16 +82,30 @@ describe('RepoEditor', () => {
...
@@ -79,16 +82,30 @@ describe('RepoEditor', () => {
});
});
describe
(
'
when file is markdown and viewer mode is review
'
,
()
=>
{
describe
(
'
when file is markdown and viewer mode is review
'
,
()
=>
{
let
mock
;
beforeEach
(
done
=>
{
beforeEach
(
done
=>
{
mock
=
new
MockAdapter
(
axios
);
vm
.
file
.
projectId
=
'
namespace/project
'
;
vm
.
file
.
previewMode
=
{
vm
.
file
.
previewMode
=
{
id
:
'
markdown
'
,
id
:
'
markdown
'
,
previewTitle
:
'
Preview Markdown
'
,
previewTitle
:
'
Preview Markdown
'
,
};
};
vm
.
file
.
content
=
'
testing 123
'
;
vm
.
$store
.
state
.
viewer
=
'
diff
'
;
vm
.
$store
.
state
.
viewer
=
'
diff
'
;
mock
.
onPost
(
'
/namespace/project/preview_markdown
'
).
reply
(
200
,
{
body
:
'
<p>testing 123</p>
'
,
});
vm
.
$nextTick
(
done
);
vm
.
$nextTick
(
done
);
});
});
afterEach
(()
=>
{
mock
.
restore
();
});
it
(
'
renders an Edit and a Preview Tab
'
,
done
=>
{
it
(
'
renders an Edit and a Preview Tab
'
,
done
=>
{
Vue
.
nextTick
(()
=>
{
Vue
.
nextTick
(()
=>
{
const
tabs
=
vm
.
$el
.
querySelectorAll
(
'
.ide-mode-tabs .nav-links li
'
);
const
tabs
=
vm
.
$el
.
querySelectorAll
(
'
.ide-mode-tabs .nav-links li
'
);
...
@@ -99,6 +116,26 @@ describe('RepoEditor', () => {
...
@@ -99,6 +116,26 @@ describe('RepoEditor', () => {
done
();
done
();
});
});
});
});
it
(
'
renders markdown for tempFile
'
,
done
=>
{
vm
.
file
.
tempFile
=
true
;
vm
.
file
.
path
=
`
${
vm
.
file
.
path
}
.md`
;
vm
.
$store
.
state
.
entries
[
vm
.
file
.
path
]
=
vm
.
file
;
vm
.
$nextTick
()
.
then
(()
=>
{
vm
.
$el
.
querySelectorAll
(
'
.ide-mode-tabs .nav-links a
'
)[
1
].
click
();
})
.
then
(
setTimeoutPromise
)
.
then
(()
=>
{
expect
(
vm
.
$el
.
querySelector
(
'
.preview-container
'
).
innerHTML
).
toContain
(
'
<p>testing 123</p>
'
,
);
})
.
then
(
done
)
.
catch
(
done
.
fail
);
});
});
});
describe
(
'
when open file is binary and not raw
'
,
()
=>
{
describe
(
'
when open file is binary and not raw
'
,
()
=>
{
...
...
This diff is collapsed.
Click to expand it.
spec/javascripts/test_bundle.js
View file @
2ec6a7e1
...
@@ -22,7 +22,7 @@ Vue.config.warnHandler = (msg, vm, trace) => {
...
@@ -22,7 +22,7 @@ Vue.config.warnHandler = (msg, vm, trace) => {
};
};
let
hasVueErrors
=
false
;
let
hasVueErrors
=
false
;
Vue
.
config
.
errorHandler
=
function
(
err
)
{
Vue
.
config
.
errorHandler
=
function
(
err
)
{
hasVueErrors
=
true
;
hasVueErrors
=
true
;
fail
(
err
);
fail
(
err
);
};
};
...
@@ -43,10 +43,11 @@ window.gl = window.gl || {};
...
@@ -43,10 +43,11 @@ window.gl = window.gl || {};
window
.
gl
.
TEST_HOST
=
TEST_HOST
;
window
.
gl
.
TEST_HOST
=
TEST_HOST
;
window
.
gon
=
window
.
gon
||
{};
window
.
gon
=
window
.
gon
||
{};
window
.
gon
.
test_env
=
true
;
window
.
gon
.
test_env
=
true
;
gon
.
relative_url_root
=
''
;
let
hasUnhandledPromiseRejections
=
false
;
let
hasUnhandledPromiseRejections
=
false
;
window
.
addEventListener
(
'
unhandledrejection
'
,
(
event
)
=>
{
window
.
addEventListener
(
'
unhandledrejection
'
,
event
=>
{
hasUnhandledPromiseRejections
=
true
;
hasUnhandledPromiseRejections
=
true
;
console
.
error
(
'
Unhandled promise rejection:
'
);
console
.
error
(
'
Unhandled promise rejection:
'
);
console
.
error
(
event
.
reason
.
stack
||
event
.
reason
);
console
.
error
(
event
.
reason
.
stack
||
event
.
reason
);
...
@@ -71,13 +72,13 @@ const axiosDefaultAdapter = getDefaultAdapter();
...
@@ -71,13 +72,13 @@ const axiosDefaultAdapter = getDefaultAdapter();
// render all of our tests
// render all of our tests
const
testsContext
=
require
.
context
(
'
.
'
,
true
,
/_spec$/
);
const
testsContext
=
require
.
context
(
'
.
'
,
true
,
/_spec$/
);
testsContext
.
keys
().
forEach
(
function
(
path
)
{
testsContext
.
keys
().
forEach
(
function
(
path
)
{
try
{
try
{
testsContext
(
path
);
testsContext
(
path
);
}
catch
(
err
)
{
}
catch
(
err
)
{
console
.
error
(
'
[ERROR] Unable to load spec:
'
,
path
);
console
.
error
(
'
[ERROR] Unable to load spec:
'
,
path
);
describe
(
'
Test bundle
'
,
function
()
{
describe
(
'
Test bundle
'
,
function
()
{
it
(
`includes '
${
path
}
'`
,
function
()
{
it
(
`includes '
${
path
}
'`
,
function
()
{
expect
(
err
).
toBeNull
();
expect
(
err
).
toBeNull
();
});
});
});
});
...
@@ -85,7 +86,7 @@ testsContext.keys().forEach(function (path) {
...
@@ -85,7 +86,7 @@ testsContext.keys().forEach(function (path) {
});
});
describe
(
'
test errors
'
,
()
=>
{
describe
(
'
test errors
'
,
()
=>
{
beforeAll
(
(
done
)
=>
{
beforeAll
(
done
=>
{
if
(
hasUnhandledPromiseRejections
||
hasVueWarnings
||
hasVueErrors
)
{
if
(
hasUnhandledPromiseRejections
||
hasVueWarnings
||
hasVueErrors
)
{
setTimeout
(
done
,
1000
);
setTimeout
(
done
,
1000
);
}
else
{
}
else
{
...
@@ -149,18 +150,18 @@ if (process.env.BABEL_ENV === 'coverage') {
...
@@ -149,18 +150,18 @@ if (process.env.BABEL_ENV === 'coverage') {
'
./issue_show/index.js
'
,
'
./issue_show/index.js
'
,
];
];
describe
(
'
Uncovered files
'
,
function
()
{
describe
(
'
Uncovered files
'
,
function
()
{
const
sourceFiles
=
require
.
context
(
'
~
'
,
true
,
/
\.
js$/
);
const
sourceFiles
=
require
.
context
(
'
~
'
,
true
,
/
\.
js$/
);
$
.
holdReady
(
true
);
$
.
holdReady
(
true
);
sourceFiles
.
keys
().
forEach
(
function
(
path
)
{
sourceFiles
.
keys
().
forEach
(
function
(
path
)
{
// ignore if there is a matching spec file
// ignore if there is a matching spec file
if
(
testsContext
.
keys
().
indexOf
(
`
${
path
.
replace
(
/
\.
js$/
,
''
)}
_spec`
)
>
-
1
)
{
if
(
testsContext
.
keys
().
indexOf
(
`
${
path
.
replace
(
/
\.
js$/
,
''
)}
_spec`
)
>
-
1
)
{
return
;
return
;
}
}
it
(
`includes '
${
path
}
'`
,
function
()
{
it
(
`includes '
${
path
}
'`
,
function
()
{
try
{
try
{
sourceFiles
(
path
);
sourceFiles
(
path
);
}
catch
(
err
)
{
}
catch
(
err
)
{
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment