Welcome to mirror list, hosted at ThFree Co, Russian Federation.

project_analytics.rb « fixtures « frontend « spec - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: f0be5e8b97d827a63ae22167a5fb3ef9c5530cea (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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# frozen_string_literal: true

require 'spec_helper'

RSpec.describe 'Project Analytics (JavaScript fixtures)' do
  include ApiHelpers
  include JavaScriptFixturesHelpers

  let_it_be(:reporter) { create(:user) }
  let_it_be(:project) { create(:project, :repository) }
  let_it_be(:environment) { create(:environment, project: project, name: 'production') }

  let!(:deployments) do
    [
      1.minute.ago,
      2.days.ago,
      3.days.ago,
      3.days.ago,
      3.days.ago,
      8.days.ago,
      32.days.ago,
      91.days.ago
    ].map do |finished_at|
      create(:deployment,
        :success,
        project: project,
        environment: environment,
        finished_at: finished_at)
    end
  end

  before do
    stub_licensed_features(project_activity_analytics: true)
    project.add_reporter(reporter)
    sign_in(reporter)
  end

  after(:all) do
    remove_repository(project)
  end

  describe API::Analytics::ProjectDeploymentFrequency, type: :request do
    before(:all) do
      clean_frontend_fixtures('api/project_analytics/')
    end

    let(:shared_params) { { environment: environment.name, interval: 'daily' } }

    def make_request(additional_query_params:)
      params = shared_params.merge(additional_query_params)
      get api("/projects/#{project.id}/analytics/deployment_frequency?#{params.to_query}", reporter)
    end

    it 'api/project_analytics/daily_deployment_frequencies_for_last_week.json' do
      make_request(additional_query_params: { from: 1.week.ago })
      expect(response).to be_successful
    end

    it 'api/project_analytics/daily_deployment_frequencies_for_last_month.json' do
      make_request(additional_query_params: { from: 1.month.ago })
      expect(response).to be_successful
    end

    it 'api/project_analytics/daily_deployment_frequencies_for_last_90_days.json' do
      make_request(additional_query_params: { from: 90.days.ago })
      expect(response).to be_successful
    end
  end
end