summaryrefslogtreecommitdiff
path: root/spec/features/projects/product_analytics
diff options
context:
space:
mode:
Diffstat (limited to 'spec/features/projects/product_analytics')
-rw-r--r--spec/features/projects/product_analytics/events_spec.rb29
-rw-r--r--spec/features/projects/product_analytics/graphs_spec.rb25
-rw-r--r--spec/features/projects/product_analytics/setup_spec.rb19
-rw-r--r--spec/features/projects/product_analytics/test_spec.rb27
4 files changed, 100 insertions, 0 deletions
diff --git a/spec/features/projects/product_analytics/events_spec.rb b/spec/features/projects/product_analytics/events_spec.rb
new file mode 100644
index 00000000000..12f1c4d291a
--- /dev/null
+++ b/spec/features/projects/product_analytics/events_spec.rb
@@ -0,0 +1,29 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'Product Analytics > Events' do
+ let_it_be(:project) { create(:project_empty_repo) }
+ let_it_be(:user) { create(:user) }
+ let(:event) { create(:product_analytics_event, project: project) }
+
+ before do
+ project.add_maintainer(user)
+ sign_in(user)
+ end
+
+ it 'shows no events message' do
+ visit(project_product_analytics_path(project))
+
+ expect(page).to have_content('There are currently no events')
+ end
+
+ it 'shows events' do
+ event
+
+ visit(project_product_analytics_path(project))
+
+ expect(page).to have_content('dvce_created_tstamp')
+ expect(page).to have_content(event.event_id)
+ end
+end
diff --git a/spec/features/projects/product_analytics/graphs_spec.rb b/spec/features/projects/product_analytics/graphs_spec.rb
new file mode 100644
index 00000000000..e2293893589
--- /dev/null
+++ b/spec/features/projects/product_analytics/graphs_spec.rb
@@ -0,0 +1,25 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'Product Analytics > Graphs' do
+ let_it_be(:project) { create(:project) }
+ let_it_be(:user) { create(:user) }
+
+ before do
+ project.add_maintainer(user)
+ sign_in(user)
+ end
+
+ it 'shows graphs', :js do
+ create(:product_analytics_event, project: project)
+
+ visit(graphs_project_product_analytics_path(project))
+
+ expect(page).to have_content('Showing graphs based on events')
+ expect(page).to have_content('platform')
+ expect(page).to have_content('os_timezone')
+ expect(page).to have_content('br_lang')
+ expect(page).to have_content('doc_charset')
+ end
+end
diff --git a/spec/features/projects/product_analytics/setup_spec.rb b/spec/features/projects/product_analytics/setup_spec.rb
new file mode 100644
index 00000000000..45c2b67502c
--- /dev/null
+++ b/spec/features/projects/product_analytics/setup_spec.rb
@@ -0,0 +1,19 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'Product Analytics > Setup' do
+ let_it_be(:project) { create(:project_empty_repo) }
+ let_it_be(:user) { create(:user) }
+
+ before do
+ project.add_maintainer(user)
+ sign_in(user)
+ end
+
+ it 'shows the setup instructions' do
+ visit(setup_project_product_analytics_path(project))
+
+ expect(page).to have_content('Copy the code below to implement tracking in your application')
+ end
+end
diff --git a/spec/features/projects/product_analytics/test_spec.rb b/spec/features/projects/product_analytics/test_spec.rb
new file mode 100644
index 00000000000..8984fb409d1
--- /dev/null
+++ b/spec/features/projects/product_analytics/test_spec.rb
@@ -0,0 +1,27 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'Product Analytics > Test' do
+ let_it_be(:project) { create(:project_empty_repo) }
+ let_it_be(:user) { create(:user) }
+
+ before do
+ project.add_maintainer(user)
+ sign_in(user)
+ end
+
+ it 'says it sends a payload' do
+ visit(test_project_product_analytics_path(project))
+
+ expect(page).to have_content('This page sends a payload.')
+ end
+
+ it 'shows the last event if there is one' do
+ event = create(:product_analytics_event, project: project)
+
+ visit(test_project_product_analytics_path(project))
+
+ expect(page).to have_content(event.event_id)
+ end
+end