Change fixtures of old tests
This commit is contained in:
parent
3008e99562
commit
d323bb79eb
|
@ -79,16 +79,18 @@
|
||||||
return note.individual_note ? note.notes[0] : note;
|
return note.individual_note ? note.notes[0] : note;
|
||||||
},
|
},
|
||||||
fetchNotes() {
|
fetchNotes() {
|
||||||
this.actionFetchNotes(this.getNotesDataByProp('discussionsPath'))
|
return this.actionFetchNotes(this.getNotesDataByProp('discussionsPath'))
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.isLoading = false;
|
|
||||||
|
|
||||||
// Scroll to note if we have hash fragment in the page URL
|
// Scroll to note if we have hash fragment in the page URL
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.checkLocationHash();
|
this.checkLocationHash();
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
.catch(() => Flash('Something went wrong while fetching issue comments. Please try again.'));
|
.catch(() => Flash('Something went wrong while fetching issue comments. Please try again.'))
|
||||||
|
.then(() => {
|
||||||
|
this.isLoading = false;
|
||||||
|
this.initPolling();
|
||||||
|
});
|
||||||
},
|
},
|
||||||
initPolling() {
|
initPolling() {
|
||||||
this.setLastFetchedAt(this.getNotesDataByProp('lastFetchedAt'));
|
this.setLastFetchedAt(this.getNotesDataByProp('lastFetchedAt'));
|
||||||
|
@ -112,7 +114,6 @@
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.fetchNotes();
|
this.fetchNotes();
|
||||||
this.initPolling();
|
|
||||||
const parentElement = this.$el.parentElement;
|
const parentElement = this.$el.parentElement;
|
||||||
|
|
||||||
if (parentElement &&
|
if (parentElement &&
|
||||||
|
|
|
@ -13,7 +13,6 @@ feature 'Issue notes polling', :js do
|
||||||
|
|
||||||
it 'displays the new comment' do
|
it 'displays the new comment' do
|
||||||
note = create(:note, noteable: issue, project: project, note: 'Looks good!')
|
note = create(:note, noteable: issue, project: project, note: 'Looks good!')
|
||||||
page.execute_script('issueNotes.refresh();')
|
|
||||||
wait_for_requests
|
wait_for_requests
|
||||||
|
|
||||||
expect(page).to have_selector("#note_#{note.id}", text: 'Looks good!')
|
expect(page).to have_selector("#note_#{note.id}", text: 'Looks good!')
|
||||||
|
@ -115,7 +114,6 @@ feature 'Issue notes polling', :js do
|
||||||
|
|
||||||
def update_note(note, new_text)
|
def update_note(note, new_text)
|
||||||
note.update(note: new_text)
|
note.update(note: new_text)
|
||||||
page.execute_script('issueNotes.refresh();')
|
|
||||||
wait_for_requests
|
wait_for_requests
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -25,10 +25,10 @@ import '~/lib/utils/common_utils';
|
||||||
};
|
};
|
||||||
|
|
||||||
describe('AwardsHandler', function() {
|
describe('AwardsHandler', function() {
|
||||||
preloadFixtures('issues/issue_with_comment.html.raw');
|
preloadFixtures('merge_requests/diff_comment.html.raw');
|
||||||
beforeEach(function(done) {
|
beforeEach(function(done) {
|
||||||
loadFixtures('issues/issue_with_comment.html.raw');
|
loadFixtures('merge_requests/diff_comment.html.raw');
|
||||||
$('body').data('page', 'projects:issues:show');
|
$('body').data('page', 'projects:merge_requests:show');
|
||||||
loadAwardsHandler(true).then((obj) => {
|
loadAwardsHandler(true).then((obj) => {
|
||||||
awardsHandler = obj;
|
awardsHandler = obj;
|
||||||
spyOn(awardsHandler, 'postEmoji').and.callFake((button, url, emoji, cb) => cb());
|
spyOn(awardsHandler, 'postEmoji').and.callFake((button, url, emoji, cb) => cb());
|
||||||
|
@ -140,7 +140,7 @@ import '~/lib/utils/common_utils';
|
||||||
});
|
});
|
||||||
describe('::getAwardUrl', function() {
|
describe('::getAwardUrl', function() {
|
||||||
return it('returns the url for request', function() {
|
return it('returns the url for request', function() {
|
||||||
return expect(awardsHandler.getAwardUrl()).toBe('http://test.host/frontend-fixtures/issues-project/issues/1/toggle_award_emoji');
|
return expect(awardsHandler.getAwardUrl()).toBe('http://test.host/frontend-fixtures/merge-requests-project/merge_requests/1/toggle_award_emoji');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
describe('::addAward and ::checkMutuality', function() {
|
describe('::addAward and ::checkMutuality', function() {
|
||||||
|
|
|
@ -55,6 +55,11 @@ describe Projects::MergeRequestsController, '(JavaScript fixtures)', type: :cont
|
||||||
render_merge_request(example.description, merge_request)
|
render_merge_request(example.description, merge_request)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'merge_requests/merge_request_with_comment.html.raw' do |example|
|
||||||
|
create(:note_on_merge_request, author: admin, project: project, noteable: merge_request, note: '- [ ] Task List Item')
|
||||||
|
render_merge_request(example.description, merge_request)
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def render_merge_request(fixture_file_name, merge_request)
|
def render_merge_request(fixture_file_name, merge_request)
|
||||||
|
|
|
@ -30,16 +30,16 @@ import '~/notes';
|
||||||
return escapedString;
|
return escapedString;
|
||||||
};
|
};
|
||||||
|
|
||||||
describe('Notes', function() {
|
fdescribe('Notes', function() {
|
||||||
const FLASH_TYPE_ALERT = 'alert';
|
const FLASH_TYPE_ALERT = 'alert';
|
||||||
var commentsTemplate = 'issues/issue_with_comment.html.raw';
|
var commentsTemplate = 'merge_requests/merge_request_with_comment.html.raw';
|
||||||
preloadFixtures(commentsTemplate);
|
preloadFixtures(commentsTemplate);
|
||||||
|
|
||||||
beforeEach(function () {
|
beforeEach(function () {
|
||||||
loadFixtures(commentsTemplate);
|
loadFixtures(commentsTemplate);
|
||||||
gl.utils.disableButtonIfEmptyField = _.noop;
|
gl.utils.disableButtonIfEmptyField = _.noop;
|
||||||
window.project_uploads_path = 'http://test.host/uploads';
|
window.project_uploads_path = 'http://test.host/uploads';
|
||||||
$('body').data('page', 'projects:issues:show');
|
$('body').data('page', 'projects:merge_requets:show');
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('task lists', function() {
|
describe('task lists', function() {
|
||||||
|
@ -60,7 +60,7 @@ import '~/notes';
|
||||||
it('submits an ajax request on tasklist:changed', function() {
|
it('submits an ajax request on tasklist:changed', function() {
|
||||||
spyOn(jQuery, 'ajax').and.callFake(function(req) {
|
spyOn(jQuery, 'ajax').and.callFake(function(req) {
|
||||||
expect(req.type).toBe('PATCH');
|
expect(req.type).toBe('PATCH');
|
||||||
expect(req.url).toBe('http://test.host/frontend-fixtures/issues-project/notes/1');
|
expect(req.url).toBe('http://test.host/frontend-fixtures/merge-requests-project/notes/3');
|
||||||
return expect(req.data.note).not.toBe(null);
|
return expect(req.data.note).not.toBe(null);
|
||||||
});
|
});
|
||||||
$('.js-task-list-field').trigger('tasklist:changed');
|
$('.js-task-list-field').trigger('tasklist:changed');
|
||||||
|
|
|
@ -1,78 +1,74 @@
|
||||||
/* eslint-disable space-before-function-paren, no-return-assign, no-var, quotes */
|
|
||||||
/* global ShortcutsIssuable */
|
/* global ShortcutsIssuable */
|
||||||
|
|
||||||
import '~/copy_as_gfm';
|
import '~/copy_as_gfm';
|
||||||
import '~/shortcuts_issuable';
|
import '~/shortcuts_issuable';
|
||||||
|
|
||||||
(function() {
|
describe('ShortcutsIssuable', () => {
|
||||||
describe('ShortcutsIssuable', function() {
|
const fixtureName = 'merge_requests/diff_comment.html.raw';
|
||||||
var fixtureName = 'issues/open-issue.html.raw';
|
preloadFixtures(fixtureName);
|
||||||
preloadFixtures(fixtureName);
|
beforeEach(() => {
|
||||||
beforeEach(function() {
|
loadFixtures(fixtureName);
|
||||||
loadFixtures(fixtureName);
|
document.querySelector('.js-new-note-form').classList.add('js-main-target-form');
|
||||||
document.querySelector('.js-new-note-form').classList.add('js-main-target-form');
|
this.shortcut = new ShortcutsIssuable();
|
||||||
this.shortcut = new ShortcutsIssuable();
|
});
|
||||||
});
|
describe('replyWithSelectedText', () => {
|
||||||
describe('replyWithSelectedText', function() {
|
// Stub window.gl.utils.getSelectedFragment to return a node with the provided HTML.
|
||||||
var stubSelection;
|
const stubSelection = (html) => {
|
||||||
// Stub window.gl.utils.getSelectedFragment to return a node with the provided HTML.
|
window.gl.utils.getSelectedFragment = () => {
|
||||||
stubSelection = function(html) {
|
const node = document.createElement('div');
|
||||||
window.gl.utils.getSelectedFragment = function() {
|
node.innerHTML = html;
|
||||||
var node = document.createElement('div');
|
return node;
|
||||||
node.innerHTML = html;
|
|
||||||
return node;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
beforeEach(function() {
|
};
|
||||||
this.selector = 'form.js-main-target-form textarea#note-body';
|
beforeEach(() => {
|
||||||
|
this.selector = 'form.js-main-target-form textarea#note-body';
|
||||||
|
});
|
||||||
|
describe('with empty selection', () => {
|
||||||
|
it('does not return an error', () => {
|
||||||
|
this.shortcut.replyWithSelectedText();
|
||||||
|
expect($(this.selector).val()).toBe('');
|
||||||
});
|
});
|
||||||
describe('with empty selection', function() {
|
it('triggers `focus`', () => {
|
||||||
it('does not return an error', function() {
|
this.shortcut.replyWithSelectedText();
|
||||||
this.shortcut.replyWithSelectedText();
|
expect(document.activeElement).toBe(document.querySelector(this.selector));
|
||||||
expect($(this.selector).val()).toBe('');
|
|
||||||
});
|
|
||||||
it('triggers `focus`', function() {
|
|
||||||
this.shortcut.replyWithSelectedText();
|
|
||||||
expect(document.activeElement).toBe(document.querySelector(this.selector));
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
describe('with any selection', function() {
|
});
|
||||||
beforeEach(function() {
|
describe('with any selection', () => {
|
||||||
stubSelection('<p>Selected text.</p>');
|
beforeEach(() => {
|
||||||
});
|
stubSelection('<p>Selected text.</p>');
|
||||||
it('leaves existing input intact', function() {
|
|
||||||
$(this.selector).val('This text was already here.');
|
|
||||||
expect($(this.selector).val()).toBe('This text was already here.');
|
|
||||||
this.shortcut.replyWithSelectedText();
|
|
||||||
expect($(this.selector).val()).toBe("This text was already here.\n\n> Selected text.\n\n");
|
|
||||||
});
|
|
||||||
it('triggers `input`', function() {
|
|
||||||
var triggered = false;
|
|
||||||
$(this.selector).on('input', function() {
|
|
||||||
triggered = true;
|
|
||||||
});
|
|
||||||
this.shortcut.replyWithSelectedText();
|
|
||||||
expect(triggered).toBe(true);
|
|
||||||
});
|
|
||||||
it('triggers `focus`', function() {
|
|
||||||
this.shortcut.replyWithSelectedText();
|
|
||||||
expect(document.activeElement).toBe(document.querySelector(this.selector));
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
describe('with a one-line selection', function() {
|
it('leaves existing input intact', () => {
|
||||||
it('quotes the selection', function() {
|
$(this.selector).val('This text was already here.');
|
||||||
stubSelection('<p>This text has been selected.</p>');
|
expect($(this.selector).val()).toBe('This text was already here.');
|
||||||
this.shortcut.replyWithSelectedText();
|
this.shortcut.replyWithSelectedText();
|
||||||
expect($(this.selector).val()).toBe("> This text has been selected.\n\n");
|
expect($(this.selector).val()).toBe('This text was already here.\n\n> Selected text.\n\n');
|
||||||
});
|
|
||||||
});
|
});
|
||||||
describe('with a multi-line selection', function() {
|
it('triggers `input`', () => {
|
||||||
it('quotes the selected lines as a group', function() {
|
let triggered = false;
|
||||||
stubSelection("<p>Selected line one.</p>\n\n<p>Selected line two.</p>\n\n<p>Selected line three.</p>");
|
$(this.selector).on('input', () => {
|
||||||
this.shortcut.replyWithSelectedText();
|
triggered = true;
|
||||||
expect($(this.selector).val()).toBe("> Selected line one.\n>\n> Selected line two.\n>\n> Selected line three.\n\n");
|
|
||||||
});
|
});
|
||||||
|
this.shortcut.replyWithSelectedText();
|
||||||
|
expect(triggered).toBe(true);
|
||||||
|
});
|
||||||
|
it('triggers `focus`', () => {
|
||||||
|
this.shortcut.replyWithSelectedText();
|
||||||
|
expect(document.activeElement).toBe(document.querySelector(this.selector));
|
||||||
|
});
|
||||||
|
});
|
||||||
|
describe('with a one-line selection', () => {
|
||||||
|
it('quotes the selection', () => {
|
||||||
|
stubSelection('<p>This text has been selected.</p>');
|
||||||
|
this.shortcut.replyWithSelectedText();
|
||||||
|
expect($(this.selector).val()).toBe('> This text has been selected.\n\n');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
describe('with a multi-line selection', () => {
|
||||||
|
it('quotes the selected lines as a group', () => {
|
||||||
|
stubSelection('<p>Selected line one.</p>\n\n<p>Selected line two.</p>\n\n<p>Selected line three.</p>');
|
||||||
|
this.shortcut.replyWithSelectedText();
|
||||||
|
expect($(this.selector).val()).toBe('> Selected line one.\n>\n> Selected line two.\n>\n> Selected line three.\n\n');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}).call(window);
|
});
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* global Shortcuts */
|
/* global Shortcuts */
|
||||||
describe('Shortcuts', () => {
|
describe('Shortcuts', () => {
|
||||||
const fixtureName = 'issues/issue_with_comment.html.raw';
|
const fixtureName = 'merge_requests/diff_comment.html.raw';
|
||||||
const createEvent = (type, target) => $.Event(type, {
|
const createEvent = (type, target) => $.Event(type, {
|
||||||
target,
|
target,
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue