require 'test_helper' module Workarea decorate Storefront::AnalyticsSystemTest, with: :nvy_theme do def test_announcing_category_view_event visit storefront.category_path(@category) # Decorated to remove parenthesis from filter link text click_link 'Green 1' click_link 'Medium 1' events = find_analytics_events(for_event: 'categoryView') assert_equal(1, events.count) payload = events.first['arguments'].first assert_equal('Test Category', payload['name']) assert_equal('featured', payload['sort']) assert_equal(1, payload['page']) assert_equal(['Green'], payload['filters']['color']) assert_equal(['Medium'], payload['filters']['size']) assert_page_view end def test_announcing_search_results_view_event visit storefront.search_path(q: 'test') events = find_analytics_events(for_event: 'searchResultsView') assert_equal(1, events.count) payload = events.first['arguments'].first assert_equal('test', payload['terms']) assert_equal('relevance', payload['sort']) assert_equal(1, payload['page']) assert_equal({}, payload['filters']) assert_equal(2, payload['totalResults']) assert_page_view # Decorated to remove parenthesis from filter link text click_link 'Green 1' events = find_analytics_events(for_event: 'searchResultsView') assert_equal(1, events.count) payload = events.first['arguments'].first assert_equal(['Green'], payload['filters']['color']) assert_equal(1, payload['totalResults']) assert_page_view end def test_announcing_product_list_event visit storefront.category_path(@category) events = find_analytics_events(for_event: 'productList') assert_equal(1, events.count) payload = events.first['arguments'].first assert_equal('productList', payload['event']) assert_equal('Test Category', payload['name']) assert_equal(1, payload['page']) # Decorated due to change in per-page configuration assert_equal(18, payload['per_page']) assert_equal(2, payload['impressions'].count) first_impression = payload['impressions'].first assert_equal('PROD2', first_impression['id']) assert_equal('Test Product 2', first_impression['name']) assert_equal(false, first_impression['sale']) assert_equal(12, first_impression['price']) assert_equal('Test Category', first_impression['category']) assert_equal(0, first_impression['position']) second_impression = payload['impressions'].second assert_equal('PROD1', second_impression['id']) assert_equal('Test Product 1', second_impression['name']) assert_equal(false, second_impression['sale']) assert_equal(10, second_impression['price']) assert_equal('Test Category', second_impression['category']) assert_equal(1, second_impression['position']) assert_page_view end def test_announcing_product_click_event visit storefront.category_path(@category) disable_analytics_dom_events within '.product-summary__name', match: :first do click_link 'Test Product 2' end events = find_analytics_events(for_event: 'productClick') assert_equal(1, events.count) payload = events.first['arguments'].first assert_equal('PROD2', payload['id']) assert_equal('Test Product 2', payload['name']) assert_equal(false, payload['sale']) assert_equal(12, payload['price']) assert_equal('Test Category', payload['category']) assert_equal('Test Category', payload['list']) assert_equal(0, payload['position']) assert_page_view end end end