blob: 95f26cc08005af8538c5df7dcb13244ea65d8d51 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
# frozen_string_literal: true
require 'yaml'
unless Rails.env.production?
namespace :frontend do
desc 'GitLab | Frontend | Generate fixtures for JavaScript tests'
RSpec::Core::RakeTask.new(:fixtures, [:pattern]) do |t, args|
directories = %w[spec]
directories << 'ee/spec' if Gitlab.ee?
directory_glob = "{#{directories.join(',')}}"
args.with_defaults(pattern: "#{directory_glob}/frontend/fixtures/**/*.rb")
ENV['NO_KNAPSACK'] = 'true'
t.pattern = args[:pattern]
t.rspec_opts = '--format documentation'
end
desc 'GitLab | Frontend | Generate fixtures for JavaScript integration tests'
RSpec::Core::RakeTask.new(:mock_server_rspec_fixtures) do |t, args|
base_path = Pathname.new('spec/frontend_integration/fixture_generators.yml')
ee_path = Pathname.new('ee') + base_path
fixtures = YAML.safe_load(base_path.read)
fixtures.concat(Array(YAML.safe_load(ee_path.read))) if Gitlab.ee? && ee_path.exist?
t.pattern = fixtures.join(',')
ENV['NO_KNAPSACK'] = 'true'
t.rspec_opts = '--format documentation'
end
desc 'GitLab | Frontend | Run JavaScript tests'
task tests: ['yarn:check'] do
sh "yarn test" do |ok, res|
abort('rake frontend:tests failed') unless ok
end
end
desc 'GitLab | Frontend | Shortcut for generating all fixtures used by MirajeJS mock server'
task mock_server_fixtures: ['frontend:mock_server_rspec_fixtures', 'gitlab:graphql:schema:dump']
end
desc 'GitLab | Frontend | Shortcut for frontend:fixtures and frontend:tests'
task frontend: ['frontend:fixtures', 'frontend:tests']
end
|