Merge branch '26226-generate-all-haml-fixtures-within-teaspoon-fixtures-task' into 'master'
Precompile all frontend test fixtures Closes #26226 See merge request !8384
This commit is contained in:
commit
57652bf584
45 changed files with 609 additions and 106 deletions
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
title: Precompile all JavaScript fixtures
|
||||
merge_request: 8384
|
||||
author:
|
|
@ -1,15 +1,28 @@
|
|||
{
|
||||
"plugins": ["jasmine"],
|
||||
"env": {
|
||||
"jasmine": true
|
||||
},
|
||||
"extends": "plugin:jasmine/recommended",
|
||||
"globals": {
|
||||
"appendLoadFixtures": false,
|
||||
"appendLoadStyleFixtures": false,
|
||||
"appendSetFixtures": false,
|
||||
"appendSetStyleFixtures": false,
|
||||
"getJSONFixture": false,
|
||||
"loadFixtures": false,
|
||||
"loadJSONFixtures": false,
|
||||
"loadStyleFixtures": false,
|
||||
"preloadFixtures": false,
|
||||
"preloadStyleFixtures": false,
|
||||
"readFixtures": false,
|
||||
"sandbox": false,
|
||||
"setFixtures": false,
|
||||
"setStyleFixtures": false,
|
||||
"spyOnEvent": false
|
||||
},
|
||||
"plugins": ["jasmine"],
|
||||
"rules": {
|
||||
"prefer-arrow-callback": 0,
|
||||
"func-names": 0
|
||||
},
|
||||
"globals": {
|
||||
"fixture": false,
|
||||
"spyOnEvent": false
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,10 +13,10 @@
|
|||
(index, element) => element.innerText.indexOf(searchText) > -1,
|
||||
).first();
|
||||
|
||||
fixture.preload(FIXTURE);
|
||||
preloadFixtures(FIXTURE);
|
||||
|
||||
beforeEach(function () {
|
||||
fixture.load(FIXTURE);
|
||||
loadFixtures(FIXTURE);
|
||||
this.abuseReports = new global.AbuseReports();
|
||||
messages = $('.abuse-reports .message');
|
||||
});
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
(() => {
|
||||
window.gon || (window.gon = {});
|
||||
const fixtureTemplate = 'event_filter.html';
|
||||
const fixtureTemplate = 'static/event_filter.html.raw';
|
||||
const filters = [
|
||||
{
|
||||
id: 'all',
|
||||
|
@ -35,7 +35,7 @@
|
|||
|
||||
describe('Activities', () => {
|
||||
beforeEach(() => {
|
||||
fixture.load(fixtureTemplate);
|
||||
loadFixtures(fixtureTemplate);
|
||||
new gl.Activities();
|
||||
});
|
||||
|
||||
|
|
|
@ -34,9 +34,9 @@
|
|||
};
|
||||
|
||||
describe('AwardsHandler', function() {
|
||||
fixture.preload('issues/open-issue.html.raw');
|
||||
preloadFixtures('issues/open-issue.html.raw');
|
||||
beforeEach(function() {
|
||||
fixture.load('issues/open-issue.html.raw');
|
||||
loadFixtures('issues/open-issue.html.raw');
|
||||
awardsHandler = new AwardsHandler;
|
||||
spyOn(awardsHandler, 'postEmoji').and.callFake((function(_this) {
|
||||
return function(url, emoji, cb) {
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
describe('Autosize behavior', function() {
|
||||
var load;
|
||||
beforeEach(function() {
|
||||
return fixture.set('<textarea class="js-autosize" style="resize: vertical"></textarea>');
|
||||
return setFixtures('<textarea class="js-autosize" style="resize: vertical"></textarea>');
|
||||
});
|
||||
it('does not overwrite the resize property', function() {
|
||||
load();
|
||||
|
|
|
@ -5,9 +5,9 @@
|
|||
(function() {
|
||||
describe('Quick Submit behavior', function() {
|
||||
var keydownEvent;
|
||||
fixture.preload('behaviors/quick_submit.html');
|
||||
preloadFixtures('static/behaviors/quick_submit.html.raw');
|
||||
beforeEach(function() {
|
||||
fixture.load('behaviors/quick_submit.html');
|
||||
loadFixtures('static/behaviors/quick_submit.html.raw');
|
||||
$('form').submit(function(e) {
|
||||
// Prevent a form submit from moving us off the testing page
|
||||
return e.preventDefault();
|
||||
|
|
|
@ -4,9 +4,9 @@
|
|||
|
||||
(function() {
|
||||
describe('requiresInput', function() {
|
||||
fixture.preload('behaviors/requires_input.html');
|
||||
preloadFixtures('static/behaviors/requires_input.html.raw');
|
||||
beforeEach(function() {
|
||||
return fixture.load('behaviors/requires_input.html');
|
||||
return loadFixtures('static/behaviors/requires_input.html.raw');
|
||||
});
|
||||
it('disables submit when any field is required', function() {
|
||||
$('.js-requires-input').requiresInput();
|
||||
|
|
|
@ -2,10 +2,10 @@
|
|||
|
||||
(() => {
|
||||
describe('Linked Tabs', () => {
|
||||
fixture.preload('linked_tabs');
|
||||
preloadFixtures('static/linked_tabs.html.raw');
|
||||
|
||||
beforeEach(() => {
|
||||
fixture.load('linked_tabs');
|
||||
loadFixtures('static/linked_tabs.html.raw');
|
||||
});
|
||||
|
||||
describe('when is initialized', () => {
|
||||
|
|
|
@ -17,10 +17,10 @@ describe('Build', () => {
|
|||
offset: BUILD_TRACE.length, n_open_tags: 0, fg_color: null, bg_color: null, style_mask: 0,
|
||||
}));
|
||||
|
||||
fixture.preload('builds/build-with-artifacts.html.raw');
|
||||
preloadFixtures('builds/build-with-artifacts.html.raw');
|
||||
|
||||
beforeEach(() => {
|
||||
fixture.load('builds/build-with-artifacts.html.raw');
|
||||
loadFixtures('builds/build-with-artifacts.html.raw');
|
||||
spyOn($, 'ajax');
|
||||
});
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
((global) => {
|
||||
describe('Dashboard', () => {
|
||||
const fixtureTemplate = 'dashboard.html';
|
||||
const fixtureTemplate = 'static/dashboard.html.raw';
|
||||
|
||||
function todosCountText() {
|
||||
return $('.js-todos-count').text();
|
||||
|
@ -17,9 +17,9 @@
|
|||
$(document).trigger('todo:toggle', newCount);
|
||||
}
|
||||
|
||||
fixture.preload(fixtureTemplate);
|
||||
preloadFixtures(fixtureTemplate);
|
||||
beforeEach(() => {
|
||||
fixture.load(fixtureTemplate);
|
||||
loadFixtures(fixtureTemplate);
|
||||
new global.Sidebar();
|
||||
});
|
||||
|
||||
|
|
|
@ -2,10 +2,10 @@
|
|||
//= require environments/components/environment_actions
|
||||
|
||||
describe('Actions Component', () => {
|
||||
fixture.preload('environments/element.html');
|
||||
preloadFixtures('static/environments/element.html.raw');
|
||||
|
||||
beforeEach(() => {
|
||||
fixture.load('environments/element.html');
|
||||
loadFixtures('static/environments/element.html.raw');
|
||||
});
|
||||
|
||||
it('should render a dropdown with the provided actions', () => {
|
||||
|
|
|
@ -2,9 +2,9 @@
|
|||
//= require environments/components/environment_external_url
|
||||
|
||||
describe('External URL Component', () => {
|
||||
fixture.preload('environments/element.html');
|
||||
preloadFixtures('static/environments/element.html.raw');
|
||||
beforeEach(() => {
|
||||
fixture.load('environments/element.html');
|
||||
loadFixtures('static/environments/element.html.raw');
|
||||
});
|
||||
|
||||
it('should link to the provided externalUrl prop', () => {
|
||||
|
|
|
@ -3,9 +3,9 @@
|
|||
//= require environments/components/environment_item
|
||||
|
||||
describe('Environment item', () => {
|
||||
fixture.preload('environments/table.html');
|
||||
preloadFixtures('static/environments/table.html.raw');
|
||||
beforeEach(() => {
|
||||
fixture.load('environments/table.html');
|
||||
loadFixtures('static/environments/table.html.raw');
|
||||
});
|
||||
|
||||
describe('When item is folder', () => {
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
//= require vue
|
||||
//= require environments/components/environment_rollback
|
||||
describe('Rollback Component', () => {
|
||||
fixture.preload('environments/element.html');
|
||||
preloadFixtures('static/environments/element.html.raw');
|
||||
|
||||
const retryURL = 'https://gitlab.com/retry';
|
||||
|
||||
beforeEach(() => {
|
||||
fixture.load('environments/element.html');
|
||||
loadFixtures('static/environments/element.html.raw');
|
||||
});
|
||||
|
||||
it('Should link to the provided retryUrl', () => {
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
//= require vue
|
||||
//= require environments/components/environment_stop
|
||||
describe('Stop Component', () => {
|
||||
fixture.preload('environments/element.html');
|
||||
preloadFixtures('static/environments/element.html.raw');
|
||||
|
||||
let stopURL;
|
||||
let component;
|
||||
|
||||
beforeEach(() => {
|
||||
fixture.load('environments/element.html');
|
||||
loadFixtures('static/environments/element.html.raw');
|
||||
|
||||
stopURL = '/stop';
|
||||
component = new window.gl.environmentsList.StopComponent({
|
||||
|
|
4
spec/javascripts/extensions/jquery_spec.js
vendored
4
spec/javascripts/extensions/jquery_spec.js
vendored
|
@ -6,7 +6,7 @@
|
|||
describe('jQuery extensions', function() {
|
||||
describe('disable', function() {
|
||||
beforeEach(function() {
|
||||
return fixture.set('<input type="text" />');
|
||||
return setFixtures('<input type="text" />');
|
||||
});
|
||||
it('adds the disabled attribute', function() {
|
||||
var $input;
|
||||
|
@ -23,7 +23,7 @@
|
|||
});
|
||||
return describe('enable', function() {
|
||||
beforeEach(function() {
|
||||
return fixture.set('<input type="text" disabled="disabled" class="disabled" />');
|
||||
return setFixtures('<input type="text" disabled="disabled" class="disabled" />');
|
||||
});
|
||||
it('removes the disabled attribute', function() {
|
||||
var $input;
|
||||
|
|
File diff suppressed because one or more lines are too long
31
spec/javascripts/fixtures/static_fixtures.rb
Normal file
31
spec/javascripts/fixtures/static_fixtures.rb
Normal file
|
@ -0,0 +1,31 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe ApplicationController, '(Static JavaScript fixtures)', type: :controller do
|
||||
include JavaScriptFixturesHelpers
|
||||
|
||||
before(:all) do
|
||||
clean_frontend_fixtures('static/')
|
||||
end
|
||||
|
||||
fixtures_path = File.expand_path(JavaScriptFixturesHelpers::FIXTURE_PATH, Rails.root)
|
||||
haml_fixtures = Dir.glob(File.expand_path('**/*.haml', fixtures_path)).map do |file_path|
|
||||
file_path.sub(/\A#{fixtures_path}#{File::SEPARATOR}/, '')
|
||||
end
|
||||
|
||||
haml_fixtures.each do |template_file_name|
|
||||
it "static/#{template_file_name.sub(/\.haml\z/, '.raw')}" do |example|
|
||||
fixture_file_name = example.description
|
||||
rendered = render_template(template_file_name)
|
||||
store_frontend_fixture(rendered, fixture_file_name)
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def render_template(template_file_name)
|
||||
fixture_path = JavaScriptFixturesHelpers::FIXTURE_PATH
|
||||
controller = ApplicationController.new
|
||||
controller.prepend_view_path(fixture_path)
|
||||
controller.render_to_string(template: template_file_name, layout: false)
|
||||
end
|
||||
end
|
|
@ -43,8 +43,7 @@
|
|||
}
|
||||
|
||||
describe('Dropdown', function describeDropdown() {
|
||||
fixture.preload('gl_dropdown.html');
|
||||
fixture.preload('projects.json');
|
||||
preloadFixtures('static/gl_dropdown.html.raw');
|
||||
|
||||
function initDropDown(hasRemote, isFilterable) {
|
||||
this.dropdownButtonElement = $('#js-project-dropdown', this.dropdownContainerElement).glDropdown({
|
||||
|
@ -61,10 +60,10 @@
|
|||
}
|
||||
|
||||
beforeEach(() => {
|
||||
fixture.load('gl_dropdown.html');
|
||||
loadFixtures('static/gl_dropdown.html.raw');
|
||||
this.dropdownContainerElement = $('.dropdown.inline');
|
||||
this.$dropdownMenuElement = $('.dropdown-menu', this.dropdownContainerElement);
|
||||
this.projectsData = fixture.load('projects.json')[0];
|
||||
this.projectsData = getJSONFixture('projects.json');
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
|
|
|
@ -4,11 +4,11 @@
|
|||
//= require gl_field_errors
|
||||
|
||||
((global) => {
|
||||
fixture.preload('gl_field_errors.html');
|
||||
preloadFixtures('static/gl_field_errors.html.raw');
|
||||
|
||||
describe('GL Style Field Errors', function() {
|
||||
beforeEach(function() {
|
||||
fixture.load('gl_field_errors.html');
|
||||
loadFixtures('static/gl_field_errors.html.raw');
|
||||
const $form = this.$form = $('form.gl-show-field-errors');
|
||||
this.fieldErrors = new global.GlFieldErrors($form);
|
||||
});
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
describe('Header', function() {
|
||||
var todosPendingCount = '.todos-pending-count';
|
||||
var fixtureTemplate = 'header.html';
|
||||
var fixtureTemplate = 'static/header.html.raw';
|
||||
|
||||
function isTodosCountHidden() {
|
||||
return $(todosPendingCount).hasClass('hidden');
|
||||
|
@ -17,9 +17,9 @@
|
|||
$(document).trigger('todo:toggle', newCount);
|
||||
}
|
||||
|
||||
fixture.preload(fixtureTemplate);
|
||||
preloadFixtures(fixtureTemplate);
|
||||
beforeEach(function() {
|
||||
fixture.load(fixtureTemplate);
|
||||
loadFixtures(fixtureTemplate);
|
||||
});
|
||||
|
||||
it('should update todos-pending-count after receiving the todo:toggle event', function() {
|
||||
|
|
|
@ -21,10 +21,10 @@
|
|||
}
|
||||
|
||||
describe('Issuable', () => {
|
||||
fixture.preload('issuable_filter');
|
||||
preloadFixtures('static/issuable_filter.html.raw');
|
||||
|
||||
beforeEach(() => {
|
||||
fixture.load('issuable_filter');
|
||||
loadFixtures('static/issuable_filter.html.raw');
|
||||
Issuable.init();
|
||||
});
|
||||
|
||||
|
@ -37,7 +37,7 @@
|
|||
|
||||
beforeEach(() => {
|
||||
$filtersForm = $('.js-filter-form');
|
||||
fixture.load('issuable_filter');
|
||||
loadFixtures('static/issuable_filter.html.raw');
|
||||
resetForm($filtersForm);
|
||||
});
|
||||
|
||||
|
|
|
@ -8,9 +8,9 @@
|
|||
var INVALID_URL = 'http://goesnowhere.nothing/whereami';
|
||||
var $boxClosed, $boxOpen, $btnClose, $btnReopen;
|
||||
|
||||
fixture.preload('issues/closed-issue.html');
|
||||
fixture.preload('issues/issue-with-task-list.html');
|
||||
fixture.preload('issues/open-issue.html');
|
||||
preloadFixtures('issues/closed-issue.html.raw');
|
||||
preloadFixtures('issues/issue-with-task-list.html.raw');
|
||||
preloadFixtures('issues/open-issue.html.raw');
|
||||
|
||||
function expectErrorMessage() {
|
||||
var $flashMessage = $('div.flash-alert');
|
||||
|
@ -61,8 +61,8 @@
|
|||
|
||||
describe('Issue', function() {
|
||||
describe('task lists', function() {
|
||||
fixture.load('issues/issue-with-task-list.html');
|
||||
beforeEach(function() {
|
||||
loadFixtures('issues/issue-with-task-list.html.raw');
|
||||
this.issue = new Issue();
|
||||
});
|
||||
|
||||
|
@ -86,7 +86,7 @@
|
|||
|
||||
describe('close issue', function() {
|
||||
beforeEach(function() {
|
||||
fixture.load('issues/open-issue.html');
|
||||
loadFixtures('issues/open-issue.html.raw');
|
||||
findElements();
|
||||
this.issue = new Issue();
|
||||
|
||||
|
@ -140,7 +140,7 @@
|
|||
|
||||
describe('reopen issue', function() {
|
||||
beforeEach(function() {
|
||||
fixture.load('issues/closed-issue.html');
|
||||
loadFixtures('issues/closed-issue.html.raw');
|
||||
findElements();
|
||||
this.issue = new Issue();
|
||||
|
||||
|
|
|
@ -17,10 +17,10 @@
|
|||
(() => {
|
||||
let saveLabelCount = 0;
|
||||
describe('Issue dropdown sidebar', () => {
|
||||
fixture.preload('issue_sidebar_label.html');
|
||||
preloadFixtures('static/issue_sidebar_label.html.raw');
|
||||
|
||||
beforeEach(() => {
|
||||
fixture.load('issue_sidebar_label.html');
|
||||
loadFixtures('static/issue_sidebar_label.html.raw');
|
||||
new IssuableContext('{"id":1,"name":"Administrator","username":"root"}');
|
||||
new LabelsSelect();
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
(function() {
|
||||
describe('LineHighlighter', function() {
|
||||
var clickLine;
|
||||
fixture.preload('line_highlighter.html');
|
||||
preloadFixtures('static/line_highlighter.html.raw');
|
||||
clickLine = function(number, eventData) {
|
||||
var e;
|
||||
if (eventData == null) {
|
||||
|
@ -20,7 +20,7 @@
|
|||
}
|
||||
};
|
||||
beforeEach(function() {
|
||||
fixture.load('line_highlighter.html');
|
||||
loadFixtures('static/line_highlighter.html.raw');
|
||||
this["class"] = new LineHighlighter();
|
||||
this.css = this["class"].highlightClass;
|
||||
return this.spies = {
|
||||
|
|
|
@ -6,9 +6,9 @@
|
|||
(function() {
|
||||
describe('MergeRequest', function() {
|
||||
return describe('task lists', function() {
|
||||
fixture.preload('merge_requests_show.html');
|
||||
preloadFixtures('static/merge_requests_show.html.raw');
|
||||
beforeEach(function() {
|
||||
fixture.load('merge_requests_show.html');
|
||||
loadFixtures('static/merge_requests_show.html.raw');
|
||||
return this.merge = new MergeRequest();
|
||||
});
|
||||
it('modifies the Markdown field', function() {
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
};
|
||||
$.extend(stubLocation, defaults, stubs || {});
|
||||
};
|
||||
fixture.preload('merge_request_tabs.html');
|
||||
preloadFixtures('static/merge_request_tabs.html.raw');
|
||||
|
||||
beforeEach(function () {
|
||||
this.class = new gl.MergeRequestTabs({ stubLocation: stubLocation });
|
||||
|
@ -30,7 +30,7 @@
|
|||
describe('#activateTab', function () {
|
||||
beforeEach(function () {
|
||||
spyOn($, 'ajax').and.callFake(function () {});
|
||||
fixture.load('merge_request_tabs.html');
|
||||
loadFixtures('static/merge_request_tabs.html.raw');
|
||||
this.subject = this.class.activateTab;
|
||||
});
|
||||
it('shows the first tab when action is show', function () {
|
||||
|
|
|
@ -5,10 +5,10 @@
|
|||
|
||||
(() => {
|
||||
describe('Mini Pipeline Graph Dropdown', () => {
|
||||
fixture.preload('mini_dropdown_graph');
|
||||
preloadFixtures('static/mini_dropdown_graph.html.raw');
|
||||
|
||||
beforeEach(() => {
|
||||
fixture.load('mini_dropdown_graph');
|
||||
loadFixtures('static/mini_dropdown_graph.html.raw');
|
||||
});
|
||||
|
||||
describe('When is initialized', () => {
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
describe('Branch', function() {
|
||||
return describe('create a new branch', function() {
|
||||
var expectToHaveError, fillNameWith;
|
||||
fixture.preload('new_branch.html');
|
||||
preloadFixtures('static/new_branch.html.raw');
|
||||
fillNameWith = function(value) {
|
||||
return $('.js-branch-name').val(value).trigger('blur');
|
||||
};
|
||||
|
@ -16,7 +16,7 @@
|
|||
return expect($('.js-branch-name-error span').text()).toEqual(error);
|
||||
};
|
||||
beforeEach(function() {
|
||||
fixture.load('new_branch.html');
|
||||
loadFixtures('static/new_branch.html.raw');
|
||||
$('form').on('submit', function(e) {
|
||||
return e.preventDefault();
|
||||
});
|
||||
|
|
|
@ -12,11 +12,11 @@
|
|||
gl.utils = gl.utils || {};
|
||||
|
||||
describe('Notes', function() {
|
||||
var commentsTemplate = 'issues/issue_with_comment.raw';
|
||||
fixture.preload(commentsTemplate);
|
||||
var commentsTemplate = 'issues/issue_with_comment.html.raw';
|
||||
preloadFixtures(commentsTemplate);
|
||||
|
||||
beforeEach(function () {
|
||||
fixture.load(commentsTemplate);
|
||||
loadFixtures(commentsTemplate);
|
||||
gl.utils.disableButtonIfEmptyField = _.noop;
|
||||
window.project_uploads_path = 'http://test.host/uploads';
|
||||
$('body').data('page', 'projects:issues:show');
|
||||
|
|
|
@ -2,10 +2,10 @@
|
|||
|
||||
(() => {
|
||||
describe('Pipelines', () => {
|
||||
fixture.preload('pipeline_graph');
|
||||
preloadFixtures('static/pipeline_graph.html.raw');
|
||||
|
||||
beforeEach(() => {
|
||||
fixture.load('pipeline_graph');
|
||||
loadFixtures('static/pipeline_graph.html.raw');
|
||||
});
|
||||
|
||||
it('should be defined', () => {
|
||||
|
|
|
@ -16,10 +16,9 @@
|
|||
window.gon.api_version = 'v3';
|
||||
|
||||
describe('Project Title', function() {
|
||||
fixture.preload('project_title.html');
|
||||
fixture.preload('projects.json');
|
||||
preloadFixtures('static/project_title.html.raw');
|
||||
beforeEach(function() {
|
||||
fixture.load('project_title.html');
|
||||
loadFixtures('static/project_title.html.raw');
|
||||
return this.project = new Project();
|
||||
});
|
||||
return describe('project list', function() {
|
||||
|
@ -34,7 +33,7 @@
|
|||
|
||||
beforeEach((function(_this) {
|
||||
return function() {
|
||||
_this.projects_data = fixture.load('projects.json')[0];
|
||||
_this.projects_data = getJSONFixture('projects.json');
|
||||
return spyOn(jQuery, 'ajax').and.callFake(fakeAjaxResponse.bind(_this));
|
||||
};
|
||||
})(this));
|
||||
|
|
|
@ -36,9 +36,9 @@
|
|||
|
||||
describe('RightSidebar', function() {
|
||||
var fixtureName = 'issues/open-issue.html.raw';
|
||||
fixture.preload(fixtureName);
|
||||
preloadFixtures(fixtureName);
|
||||
beforeEach(function() {
|
||||
fixture.load(fixtureName);
|
||||
loadFixtures(fixtureName);
|
||||
this.sidebar = new Sidebar;
|
||||
$aside = $('.right-sidebar');
|
||||
$page = $('.page-with-sidebar');
|
||||
|
@ -65,9 +65,10 @@
|
|||
});
|
||||
|
||||
it('should broadcast todo:toggle event when add todo clicked', function() {
|
||||
var todos = getJSONFixture('todos.json');
|
||||
spyOn(jQuery, 'ajax').and.callFake(function() {
|
||||
var d = $.Deferred();
|
||||
var response = fixture.load('todos.json');
|
||||
var response = todos;
|
||||
d.resolve(response);
|
||||
return d.promise();
|
||||
});
|
||||
|
|
|
@ -112,9 +112,9 @@
|
|||
};
|
||||
|
||||
describe('Search autocomplete dropdown', function() {
|
||||
fixture.preload('search_autocomplete.html');
|
||||
preloadFixtures('static/search_autocomplete.html.raw');
|
||||
beforeEach(function() {
|
||||
fixture.load('search_autocomplete.html');
|
||||
loadFixtures('static/search_autocomplete.html.raw');
|
||||
return widget = new gl.SearchAutocomplete;
|
||||
});
|
||||
it('should show Dashboard specific dropdown menu', function() {
|
||||
|
|
|
@ -6,9 +6,9 @@
|
|||
(function() {
|
||||
describe('ShortcutsIssuable', function() {
|
||||
var fixtureName = 'issues/open-issue.html.raw';
|
||||
fixture.preload(fixtureName);
|
||||
preloadFixtures(fixtureName);
|
||||
beforeEach(function() {
|
||||
fixture.load(fixtureName);
|
||||
loadFixtures(fixtureName);
|
||||
document.querySelector('.js-new-note-form').classList.add('js-main-target-form');
|
||||
return this.shortcut = new ShortcutsIssuable();
|
||||
});
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
((global) => {
|
||||
describe('SigninTabsMemoizer', () => {
|
||||
const fixtureTemplate = 'signin_tabs.html';
|
||||
const fixtureTemplate = 'static/signin_tabs.html.raw';
|
||||
const tabSelector = 'ul.nav-tabs';
|
||||
const currentTabKey = 'current_signin_tab';
|
||||
let memo;
|
||||
|
@ -15,10 +15,10 @@
|
|||
return memo;
|
||||
}
|
||||
|
||||
fixture.preload(fixtureTemplate);
|
||||
preloadFixtures(fixtureTemplate);
|
||||
|
||||
beforeEach(() => {
|
||||
fixture.load(fixtureTemplate);
|
||||
loadFixtures(fixtureTemplate);
|
||||
});
|
||||
|
||||
it('does nothing if no tab was previously selected', () => {
|
||||
|
|
|
@ -103,7 +103,7 @@
|
|||
describe('DOM Events', function () {
|
||||
beforeEach(function () {
|
||||
// This ensures DOM and DOM events are initialized for these specs.
|
||||
fixture.set('<div></div>');
|
||||
setFixtures('<div></div>');
|
||||
|
||||
this.smartInterval = createDefaultSmartInterval();
|
||||
});
|
||||
|
|
|
@ -37,12 +37,12 @@
|
|||
// file as a manifest.
|
||||
// For more information: http://github.com/modeset/teaspoon
|
||||
|
||||
(function() {
|
||||
|
||||
|
||||
}).call(this);
|
||||
// set our fixtures path
|
||||
jasmine.getFixtures().fixturesPath = '/teaspoon/fixtures';
|
||||
jasmine.getJSONFixtures().fixturesPath = '/teaspoon/fixtures';
|
||||
|
||||
// defined in ActionDispatch::TestRequest
|
||||
// see https://github.com/rails/rails/blob/v4.2.7.1/actionpack/lib/action_dispatch/testing/test_request.rb#L7
|
||||
window.gl = window.gl || {};
|
||||
gl.TEST_HOST = 'http://test.host';
|
||||
window.gl.TEST_HOST = 'http://test.host';
|
||||
window.gon = window.gon || {};
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
};
|
||||
describe('on a js-syntax-highlight element', function() {
|
||||
beforeEach(function() {
|
||||
return fixture.set('<div class="js-syntax-highlight"></div>');
|
||||
return setFixtures('<div class="js-syntax-highlight"></div>');
|
||||
});
|
||||
return it('applies syntax highlighting', function() {
|
||||
stubUserColorScheme('monokai');
|
||||
|
@ -23,7 +23,7 @@
|
|||
});
|
||||
return describe('on a parent element', function() {
|
||||
beforeEach(function() {
|
||||
return fixture.set("<div class=\"parent\">\n <div class=\"js-syntax-highlight\"></div>\n <div class=\"foo\"></div>\n <div class=\"js-syntax-highlight\"></div>\n</div>");
|
||||
return setFixtures("<div class=\"parent\">\n <div class=\"js-syntax-highlight\"></div>\n <div class=\"foo\"></div>\n <div class=\"js-syntax-highlight\"></div>\n</div>");
|
||||
});
|
||||
it('applies highlighting to all applicable children', function() {
|
||||
stubUserColorScheme('monokai');
|
||||
|
@ -33,7 +33,7 @@
|
|||
});
|
||||
return it('prevents an infinite loop when no matches exist', function() {
|
||||
var highlight;
|
||||
fixture.set('<div></div>');
|
||||
setFixtures('<div></div>');
|
||||
highlight = function() {
|
||||
return $('div').syntaxHighlight();
|
||||
};
|
||||
|
|
|
@ -10,10 +10,10 @@
|
|||
|
||||
(function() {
|
||||
describe('U2FAuthenticate', function() {
|
||||
fixture.preload('u2f/authenticate.html.raw');
|
||||
preloadFixtures('u2f/authenticate.html.raw');
|
||||
|
||||
beforeEach(function() {
|
||||
fixture.load('u2f/authenticate.html.raw');
|
||||
loadFixtures('u2f/authenticate.html.raw');
|
||||
this.u2fDevice = new MockU2FDevice;
|
||||
this.container = $("#js-authenticate-u2f");
|
||||
this.component = new window.gl.U2FAuthenticate(
|
||||
|
|
|
@ -10,10 +10,10 @@
|
|||
|
||||
(function() {
|
||||
describe('U2FRegister', function() {
|
||||
fixture.preload('u2f/register.html.raw');
|
||||
preloadFixtures('u2f/register.html.raw');
|
||||
|
||||
beforeEach(function() {
|
||||
fixture.load('u2f/register.html.raw');
|
||||
loadFixtures('u2f/register.html.raw');
|
||||
this.u2fDevice = new MockU2FDevice;
|
||||
this.container = $("#js-register-u2f");
|
||||
this.component = new U2FRegister(this.container, $("#js-register-u2f-templates"), {}, "token");
|
||||
|
|
|
@ -5,7 +5,7 @@ describe('Commit component', () => {
|
|||
let component;
|
||||
|
||||
it('should render a code-fork icon if it does not represent a tag', () => {
|
||||
fixture.set('<div class="test-commit-container"></div>');
|
||||
setFixtures('<div class="test-commit-container"></div>');
|
||||
component = new window.gl.CommitComponent({
|
||||
el: document.querySelector('.test-commit-container'),
|
||||
propsData: {
|
||||
|
@ -30,7 +30,7 @@ describe('Commit component', () => {
|
|||
|
||||
describe('Given all the props', () => {
|
||||
beforeEach(() => {
|
||||
fixture.set('<div class="test-commit-container"></div>');
|
||||
setFixtures('<div class="test-commit-container"></div>');
|
||||
|
||||
props = {
|
||||
tag: true,
|
||||
|
@ -105,7 +105,7 @@ describe('Commit component', () => {
|
|||
|
||||
describe('When commit title is not provided', () => {
|
||||
it('should render default message', () => {
|
||||
fixture.set('<div class="test-commit-container"></div>');
|
||||
setFixtures('<div class="test-commit-container"></div>');
|
||||
props = {
|
||||
tag: false,
|
||||
commitRef: {
|
||||
|
|
|
@ -10,9 +10,9 @@
|
|||
|
||||
describe('ZenMode', function() {
|
||||
var fixtureName = 'issues/open-issue.html.raw';
|
||||
fixture.preload(fixtureName);
|
||||
preloadFixtures(fixtureName);
|
||||
beforeEach(function() {
|
||||
fixture.load(fixtureName);
|
||||
loadFixtures(fixtureName);
|
||||
spyOn(Dropzone, 'forElement').and.callFake(function() {
|
||||
return {
|
||||
enable: function() {
|
||||
|
|
|
@ -20,11 +20,24 @@ module JavaScriptFixturesHelpers
|
|||
|
||||
# Public: Store a response object as fixture file
|
||||
#
|
||||
# response - response object to store
|
||||
# response - string or response object to store
|
||||
# fixture_file_name - file name to store the fixture in (relative to FIXTURE_PATH)
|
||||
#
|
||||
def store_frontend_fixture(response, fixture_file_name)
|
||||
fixture_file_name = File.expand_path(fixture_file_name, FIXTURE_PATH)
|
||||
fixture = response.respond_to?(:body) ? parse_response(response) : response
|
||||
|
||||
FileUtils.mkdir_p(File.dirname(fixture_file_name))
|
||||
File.write(fixture_file_name, fixture)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
# Private: Prepare a response object for use as a frontend fixture
|
||||
#
|
||||
# response - response object to prepare
|
||||
#
|
||||
def parse_response(response)
|
||||
fixture = response.body
|
||||
fixture.force_encoding("utf-8")
|
||||
|
||||
|
@ -45,7 +58,6 @@ module JavaScriptFixturesHelpers
|
|||
fixture.gsub!(%r{="/}, "=\"http://#{test_host}/")
|
||||
end
|
||||
|
||||
FileUtils.mkdir_p(File.dirname(fixture_file_name))
|
||||
File.write(fixture_file_name, fixture)
|
||||
fixture
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue