diff --git a/.travis.yml b/.travis.yml index 952804f011..7764342b15 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,12 +14,13 @@ env: global: - TZ="Australia/Melbourne" - TIMEZONE="Australia/Melbourne" + - CI_NODE_TOTAL=5 matrix: - - TEST_CASES="./spec/features/admin" GITHUB_DEPLOY="true" - - TEST_CASES="./spec/features/consumer ./spec/serializers ./spec/performance" - - TEST_CASES="./spec/models" - - TEST_CASES="./spec/controllers ./spec/views ./spec/jobs" - - TEST_CASES="./spec/requests ./spec/helpers ./spec/mailers ./spec/lib" KARMA="true" + - CI_NODE_INDEX=0 + - CI_NODE_INDEX=1 + - CI_NODE_INDEX=2 + - CI_NODE_INDEX=3 + - CI_NODE_INDEX=4 KARMA="true" GITHUB_DEPLOY="true" before_script: - cp config/database.travis.yml config/database.yml @@ -36,7 +37,8 @@ before_script: script: - '[ "$KARMA" = "true" ] && bundle exec rake karma:run || echo "Skipping karma run"' - - "bundle exec rspec $TEST_CASES" + #- "KNAPSACK_GENERATE_REPORT=true bundle exec rspec spec" + - "bundle exec rake knapsack:rspec" after_success: - > diff --git a/Gemfile b/Gemfile index 00fd2c8908..8230c6a15f 100644 --- a/Gemfile +++ b/Gemfile @@ -105,6 +105,7 @@ group :test, :development do gem 'json_spec' gem 'unicorn-rails' gem 'atomic' + gem 'knapsack' end group :test do diff --git a/Gemfile.lock b/Gemfile.lock index bbcbfde415..16a319f0ab 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -431,6 +431,9 @@ GEM actionpack (>= 3.0.0) activesupport (>= 3.0.0) kgio (2.9.3) + knapsack (1.5.1) + rake + timecop (>= 0.1.0) launchy (2.1.2) addressable (~> 2.3) letter_opener (1.0.0) @@ -684,6 +687,7 @@ DEPENDENCIES immigrant jquery-rails json_spec + knapsack letter_opener momentjs-rails newrelic_rpm @@ -726,3 +730,6 @@ DEPENDENCIES whenever wicked_pdf wkhtmltopdf-binary + +BUNDLED WITH + 1.10.6 diff --git a/Rakefile b/Rakefile index 699faf6e9d..9ed55e022e 100644 --- a/Rakefile +++ b/Rakefile @@ -5,3 +5,5 @@ require File.expand_path('../config/application', __FILE__) Openfoodnetwork::Application.load_tasks + +Knapsack.load_tasks if defined?(Knapsack) diff --git a/app/assets/stylesheets/darkswarm/_shop-product-thumb.css.sass b/app/assets/stylesheets/darkswarm/_shop-product-thumb.css.sass index b5dca200c5..701e8005b0 100644 --- a/app/assets/stylesheets/darkswarm/_shop-product-thumb.css.sass +++ b/app/assets/stylesheets/darkswarm/_shop-product-thumb.css.sass @@ -13,7 +13,7 @@ height: 7rem float: left display: block - z-index: 999999 + z-index: 1 background-color: white overflow: hidden i @@ -56,4 +56,4 @@ width: 0rem height: 0rem - \ No newline at end of file + diff --git a/knapsack_rspec_report.json b/knapsack_rspec_report.json new file mode 100644 index 0000000000..9578580ffd --- /dev/null +++ b/knapsack_rspec_report.json @@ -0,0 +1,173 @@ +{ + "spec/controllers/admin/accounts_and_billing_settings_controller_spec.rb": 5.547292709350586, + "spec/controllers/admin/business_model_configuration_controller_spec.rb": 0.3683593273162842, + "spec/controllers/admin/customers_controller_spec.rb": 0.8933048248291016, + "spec/controllers/admin/enterprises_controller_spec.rb": 5.984264850616455, + "spec/controllers/admin/order_cycles_controller_spec.rb": 2.839667558670044, + "spec/controllers/api/enterprises_controller_spec.rb": 0.2780017852783203, + "spec/controllers/api/order_cycles_controller_spec.rb": 1.8730568885803223, + "spec/controllers/base_controller_spec.rb": 0.02932429313659668, + "spec/controllers/cart_controller_spec.rb": 1.062530517578125, + "spec/controllers/checkout_controller_spec.rb": 1.6658811569213867, + "spec/controllers/enterprise_confirmations_controller_spec.rb": 1.1228001117706299, + "spec/controllers/enterprises_controller_spec.rb": 2.2625372409820557, + "spec/controllers/groups_controller_spec.rb": 0.40616846084594727, + "spec/controllers/registration_controller_spec.rb": 0.2145981788635254, + "spec/controllers/shop_controller_spec.rb": 5.298644304275513, + "spec/controllers/shops_controller_spec.rb": 0.2002561092376709, + "spec/controllers/spree/admin/adjustments_controller_spec.rb": 1.023233413696289, + "spec/controllers/spree/admin/base_controller_spec.rb": 0.28871917724609375, + "spec/controllers/spree/admin/line_items_controller_spec.rb": 14.042466402053833, + "spec/controllers/spree/admin/orders_controller_spec.rb": 12.639750480651855, + "spec/controllers/spree/admin/overview_controller_spec.rb": 0.691641092300415, + "spec/controllers/spree/admin/payment_methods_controller_spec.rb": 0.7098217010498047, + "spec/controllers/spree/admin/products_controller_spec.rb": 1.4383087158203125, + "spec/controllers/spree/admin/reports_controller_spec.rb": 47.79633665084839, + "spec/controllers/spree/admin/search_controller_spec.rb": 0.9386723041534424, + "spec/controllers/spree/admin/variants_controller_spec.rb": 2.0663084983825684, + "spec/controllers/spree/api/line_items_controller_spec.rb": 0.4743325710296631, + "spec/controllers/spree/api/products_controller_spec.rb": 8.339523792266846, + "spec/controllers/spree/api/variants_controller_spec.rb": 4.835069179534912, + "spec/controllers/spree/checkout_controller_spec.rb": 0.687798023223877, + "spec/controllers/spree/orders_controller_spec.rb": 1.7623963356018066, + "spec/controllers/spree/paypal_controller_spec.rb": 0.437147855758667, + "spec/controllers/spree/store_controller_spec.rb": 0.03699040412902832, + "spec/controllers/spree/user_sessions_controller_spec.rb": 0.09967947006225586, + "spec/controllers/user_passwords_controller_spec.rb": 0.31070899963378906, + "spec/controllers/user_registrations_controller_spec.rb": 0.36581993103027344, + "spec/features/admin/account_spec.rb": 0.32449865341186523, + "spec/features/admin/accounts_and_billing_settings_spec.rb": 15.864763259887695, + "spec/features/admin/adjustments_spec.rb": 6.825028896331787, + "spec/features/admin/authentication_spec.rb": 22.29801869392395, + "spec/features/admin/bulk_order_management_spec.rb": 112.38913011550903, + "spec/features/admin/bulk_product_update_spec.rb": 59.00568914413452, + "spec/features/admin/business_model_configuration_spec.rb": 2.5152199268341064, + "spec/features/admin/cms_spec.rb": 2.5085999965667725, + "spec/features/admin/content_spec.rb": 1.2907540798187256, + "spec/features/admin/customers_spec.rb": 33.99929761886597, + "spec/features/admin/enterprise_fees_spec.rb": 13.33712100982666, + "spec/features/admin/enterprise_groups_spec.rb": 8.689672231674194, + "spec/features/admin/enterprise_relationships_spec.rb": 7.257282733917236, + "spec/features/admin/enterprise_roles_spec.rb": 5.535412788391113, + "spec/features/admin/enterprise_user_spec.rb": 2.5493221282958984, + "spec/features/admin/enterprises/index_spec.rb": 5.77092719078064, + "spec/features/admin/enterprises_spec.rb": 34.78606820106506, + "spec/features/admin/image_settings_spec.rb": 0.4501008987426758, + "spec/features/admin/order_cycles_spec.rb": 64.186044216156, + "spec/features/admin/orders_spec.rb": 49.190918922424316, + "spec/features/admin/overview_spec.rb": 5.788672208786011, + "spec/features/admin/payment_method_spec.rb": 15.959310531616211, + "spec/features/admin/products_spec.rb": 21.46337914466858, + "spec/features/admin/reports_spec.rb": 150.51152086257935, + "spec/features/admin/shipping_methods_spec.rb": 8.671862363815308, + "spec/features/admin/tax_settings_spec.rb": 0.7941949367523193, + "spec/features/admin/variant_overrides_spec.rb": 29.70982050895691, + "spec/features/admin/variants_spec.rb": 5.565031290054321, + "spec/features/consumer/authentication_spec.rb": 12.449390649795532, + "spec/features/consumer/groups_spec.rb": 1.545715093612671, + "spec/features/consumer/producers_spec.rb": 3.3242862224578857, + "spec/features/consumer/registration_spec.rb": 2.421873092651367, + "spec/features/consumer/shopping/cart_spec.rb": 1.6924467086791992, + "spec/features/consumer/shopping/checkout_auth_spec.rb": 8.496914863586426, + "spec/features/consumer/shopping/checkout_spec.rb": 39.204933881759644, + "spec/features/consumer/shopping/shopping_spec.rb": 23.358332633972168, + "spec/features/consumer/shopping/variant_overrides_spec.rb": 58.16736888885498, + "spec/features/consumer/shops_spec.rb": 6.636866092681885, + "spec/helpers/admin/business_model_configuration_helper_spec.rb": 0.2595028877258301, + "spec/helpers/checkout_helper_spec.rb": 0.10617446899414062, + "spec/helpers/groups_helper_spec.rb": 0.007729053497314453, + "spec/helpers/html_helper_spec.rb": 0.05157279968261719, + "spec/helpers/injection_helper_spec.rb": 0.6142556667327881, + "spec/helpers/navigation_helper_spec.rb": 0.02951979637145996, + "spec/helpers/order_cycles_helper_spec.rb": 0.5953588485717773, + "spec/helpers/products_helper_spec.rb": 0.009511232376098633, + "spec/helpers/shared_helper_spec.rb": 0.017564058303833008, + "spec/helpers/shop_helper_spec.rb": 0.05760025978088379, + "spec/jobs/confirm_order_job_spec.rb": 0.0458524227142334, + "spec/jobs/confirm_signup_job_spec.rb": 0.021564006805419922, + "spec/jobs/finalize_account_invoices_spec.rb": 4.505181312561035, + "spec/jobs/order_cycle_notification_job_spec.rb": 2.0606272220611572, + "spec/jobs/update_account_invoices_spec.rb": 18.434475898742676, + "spec/jobs/update_billable_periods_spec.rb": 4.850176572799683, + "spec/jobs/welcome_enterprise_job_spec.rb": 0.07065534591674805, + "spec/lib/open_food_network/bulk_coop_report_spec.rb": 4.789663553237915, + "spec/lib/open_food_network/customers_report_spec.rb": 2.419727325439453, + "spec/lib/open_food_network/distribution_change_validator_spec.rb": 0.10607743263244629, + "spec/lib/open_food_network/enterprise_fee_applicator_spec.rb": 0.7333858013153076, + "spec/lib/open_food_network/enterprise_fee_calculator_spec.rb": 7.406745195388794, + "spec/lib/open_food_network/enterprise_injection_data_spec.rb": 0.291548490524292, + "spec/lib/open_food_network/enterprise_issue_validator_spec.rb": 0.09764814376831055, + "spec/lib/open_food_network/feature_toggle_spec.rb": 0.010193109512329102, + "spec/lib/open_food_network/group_buy_report_spec.rb": 3.708569049835205, + "spec/lib/open_food_network/last_used_address_spec.rb": 0.0254666805267334, + "spec/lib/open_food_network/lettuce_share_report_spec.rb": 2.3206725120544434, + "spec/lib/open_food_network/option_value_namer_spec.rb": 0.06185555458068848, + "spec/lib/open_food_network/order_and_distributor_report_spec.rb": 1.0406858921051025, + "spec/lib/open_food_network/order_cycle_form_applicator_spec.rb": 4.533008337020874, + "spec/lib/open_food_network/order_cycle_management_report_spec.rb": 2.036308526992798, + "spec/lib/open_food_network/order_cycle_permissions_spec.rb": 23.74185061454773, + "spec/lib/open_food_network/order_grouper_spec.rb": 0.029039621353149414, + "spec/lib/open_food_network/orders_and_fulfillments_report_spec.rb": 5.135573148727417, + "spec/lib/open_food_network/packing_report_spec.rb": 5.088447093963623, + "spec/lib/open_food_network/permissions_spec.rb": 8.881855249404907, + "spec/lib/open_food_network/products_and_inventory_report_spec.rb": 3.55375337600708, + "spec/lib/open_food_network/referer_parser_spec.rb": 0.014271259307861328, + "spec/lib/open_food_network/reports/report_spec.rb": 0.02238297462463379, + "spec/lib/open_food_network/reports/row_spec.rb": 0.0031762123107910156, + "spec/lib/open_food_network/reports/rule_spec.rb": 0.013959169387817383, + "spec/lib/open_food_network/sales_tax_report_spec.rb": 0.10717129707336426, + "spec/lib/open_food_network/scope_variant_to_hub_spec.rb": 2.4846229553222656, + "spec/lib/open_food_network/user_balance_calculator_spec.rb": 3.4277901649475098, + "spec/lib/open_food_network/users_and_enterprises_report_spec.rb": 0.40532779693603516, + "spec/lib/open_food_network/xero_invoices_report_spec.rb": 1.1586685180664062, + "spec/lib/spree/product_filters_spec.rb": 0.13163042068481445, + "spec/mailers/enterprise_mailer_spec.rb": 0.4537942409515381, + "spec/mailers/order_mailer_spec.rb": 1.452355146408081, + "spec/mailers/producer_mailer_spec.rb": 8.775528192520142, + "spec/mailers/user_mailer_spec.rb": 0.057527780532836914, + "spec/models/adjustment_metadata_spec.rb": 0.22016620635986328, + "spec/models/billable_period_spec.rb": 2.06524658203125, + "spec/models/calculator/weight_spec.rb": 0.009344100952148438, + "spec/models/cart_spec.rb": 4.099429130554199, + "spec/models/customer_spec.rb": 0.07328605651855469, + "spec/models/enterprise_caching_spec.rb": 0.8475983142852783, + "spec/models/enterprise_fee_spec.rb": 3.1999905109405518, + "spec/models/enterprise_group_spec.rb": 0.30861926078796387, + "spec/models/enterprise_relationship_spec.rb": 2.1849746704101562, + "spec/models/enterprise_spec.rb": 17.679611682891846, + "spec/models/exchange_spec.rb": 13.899227857589722, + "spec/models/model_set_spec.rb": 0.22760748863220215, + "spec/models/order_cycle_spec.rb": 10.680967569351196, + "spec/models/product_distribution_spec.rb": 2.227938413619995, + "spec/models/spree/ability_spec.rb": 15.278357028961182, + "spec/models/spree/addresses_spec.rb": 0.055602312088012695, + "spec/models/spree/adjustment_spec.rb": 9.196375846862793, + "spec/models/spree/classification_spec.rb": 0.161299467086792, + "spec/models/spree/image_spec.rb": 0.007464408874511719, + "spec/models/spree/line_item_spec.rb": 13.545411586761475, + "spec/models/spree/order_populator_spec.rb": 1.635932207107544, + "spec/models/spree/order_spec.rb": 10.645411968231201, + "spec/models/spree/payment_method_spec.rb": 0.0733034610748291, + "spec/models/spree/payment_spec.rb": 1.691227912902832, + "spec/models/spree/preferences/file_configuration_spec.rb": 0.03429675102233887, + "spec/models/spree/product_spec.rb": 17.406191110610962, + "spec/models/spree/shipping_method_spec.rb": 3.0447566509246826, + "spec/models/spree/tax_rate_spec.rb": 0.44750261306762695, + "spec/models/spree/taxon_spec.rb": 0.553098201751709, + "spec/models/spree/user_spec.rb": 1.2693369388580322, + "spec/models/spree/variant_spec.rb": 13.75825023651123, + "spec/models/variant_override_spec.rb": 4.086935520172119, + "spec/performance/injection_helper_spec.rb": 6.890667676925659, + "spec/performance/orders_controller_spec.rb": 0.031180143356323242, + "spec/performance/shop_controller_spec.rb": 18.19426918029785, + "spec/requests/large_request_spec.rb": 0.02229022979736328, + "spec/requests/shop_spec.rb": 1.0012562274932861, + "spec/serializers/admin/enterprise_serializer_spec.rb": 0.10484433174133301, + "spec/serializers/admin/exchange_serializer_spec.rb": 0.7569985389709473, + "spec/serializers/admin/for_order_cycle/enterprise_serializer_spec.rb": 0.4293792247772217, + "spec/serializers/admin/index_enterprise_serializer_spec.rb": 1.2506742477416992, + "spec/serializers/admin/variant_override_serializer_spec.rb": 0.38981151580810547, + "spec/serializers/enterprise_serializer_spec.rb": 0.3511006832122803, + "spec/serializers/spree/product_serializer_spec.rb": 0.26622653007507324, + "spec/serializers/spree/variant_serializer_spec.rb": 0.30304574966430664 +} diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 61552c528d..80d7c2eeb7 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,7 +1,10 @@ require 'rubygems' # Require pry when we're not inside Travis-CI -require 'pry' unless ENV['HAS_JOSH_K_SEAL_OF_APPROVAL'] +require 'pry' unless ENV['CI'] + +require 'knapsack' +Knapsack::Adapters::RSpecAdapter.bind ENV["RAILS_ENV"] ||= 'test' require File.expand_path("../../config/environment", __FILE__)