The #table_items methos seems to return line items in different order sometimes making this test a bit flaky. The test passed on Semaphore previously and is passing in development. I don't think the order matters so using :match_array instead of :eq.
Also add tests for each of the different report types. I didn't make these JavaScript tests because not sure that is necessary and they would be slower.
Before the date and distributor filters would have no effect. This is because the BulkCoopReport is still generated using an older style method, and isn't generated using the newer method like in the EnterpriseFeeSummaryReport. This older style report expects to receive a :q parameter but it actually received the newer style :report parameter so the filters were not being applied.
This keeps the newer style report params but converts them, after they are authorised as safe, into the older style in the controller.
For the BulkCoop report to speed up. We move from an output like
```
web_1 | CACHE (0.3ms) SELECT id FROM "spree_line_items" WHERE "spree_line_items"."order_id" IN (SELECT id FROM "spree_orders" WHERE (("spree_orders"."distributor_id" IN (SELECT enterprises.id FROM "enterprises") OR "spree_orders"."order_cycle_id" IN (SELECT id FROM "order_cycles"))))
web_1 | CACHE (0.0ms) SELECT "spree_option_values".* FROM "spree_option_values" INNER JOIN "spree_option_types" ON "spree_option_types"."id" = "spree_option_values"."option_type_id" INNER JOIN "spree_option_values_line_items" ON "spree_option_values"."id" = "spree_option_values_line_items"."option_value_id" WHERE "spree_option_values_line_items"."line_item_id" = $1 ORDER BY spree_option_types.position asc [["line_item_id", 4]]
web_1 | CACHE (0.0ms) SELECT "spree_option_values".* FROM "spree_option_values" INNER JOIN "spree_option_types" ON "spree_option_types"."id" = "spree_option_values"."option_type_id" INNER JOIN "spree_option_values_line_items" ON "spree_option_values"."id" = "spree_option_values_line_items"."option_value_id" WHERE "spree_option_values_line_items"."line_item_id" = $1 ORDER BY spree_option_types.position asc [["line_item_id", 6]]
web_1 | CACHE (0.0ms) SELECT "spree_option_values".* FROM "spree_option_values" INNER JOIN "spree_option_types" ON "spree_option_types"."id" = "spree_option_values"."option_type_id" INNER JOIN "spree_option_values_line_items" ON "spree_option_values"."id" = "spree_option_values_line_items"."option_value_id" WHERE "spree_option_values_line_items"."line_item_id" = $1 ORDER BY spree_option_types.position asc [["line_item_id", 8]]
web_1 | CACHE (0.0ms) SELECT "spree_option_values".* FROM "spree_option_values" INNER JOIN "spree_option_types" ON "spree_option_types"."id" = "spree_option_values"."option_type_id" INNER JOIN "spree_option_values_line_items" ON "spree_option_values"."id" = "spree_option_values_line_items"."option_value_id" WHERE "spree_option_values_line_items"."line_item_id" = $1 ORDER BY spree_option_types.position asc [["line_item_id", 5]]
web_1 | CACHE (0.0ms) SELECT "spree_option_values".* FROM "spree_option_values" INNER JOIN "spree_option_types" ON "spree_option_types"."id" = "spree_option_values"."option_type_id" INNER JOIN "spree_option_values_line_items" ON "spree_option_values"."id" = "spree_option_values_line_items"."option_value_id" WHERE "spree_option_values_line_items"."line_item_id" = $1 ORDER BY spree_option_types.position asc [["line_item_id", 7]]
web_1 | CACHE (0.0ms) SELECT "spree_option_values".* FROM "spree_option_values" INNER JOIN "spree_option_types" ON "spree_option_types"."id" = "spree_option_values"."option_type_id" INNER JOIN "spree_option_values_line_items" ON "spree_option_values"."id" = "spree_option_values_line_items"."option_value_id" WHERE "spree_option_values_line_items"."line_item_id" = $1 ORDER BY spree_option_types.position asc [["line_item_id", 4]]
web_1 | CACHE (0.0ms) SELECT "spree_option_values".* FROM "spree_option_values" INNER JOIN "spree_option_types" ON "spree_option_types"."id" = "spree_option_values"."option_type_id" INNER JOIN "spree_option_values_line_items" ON "spree_option_values"."id" = "spree_option_values_line_items"."option_value_id" WHERE "spree_option_values_line_items"."line_item_id" = $1 ORDER BY spree_option_types.position asc [["line_item_id", 5]]
web_1 | Rendered engines/order_management/app/views/order_management/reports/_report.html.haml (158.5ms)
web_1 | Rendered engines/order_management/app/views/order_management/reports/bulk_coop/create.html.haml within spree/layouts/admin (187.3ms)
```
to
```
web_1 | CACHE (0.0ms) SELECT id FROM "spree_line_items" WHERE "spree_line_items"."order_id" IN (SELECT id FROM "spree_orders" WHERE (("spree_orders"."distributor_id" IN (SELECT enterprises.id FROM "enterprises") OR "spree_orders"."order_cycle_id" IN (SELECT id FROM "order_cycles"))))
web_1 | CACHE (0.0ms) SELECT "spree_option_types".* FROM "spree_option_types" WHERE "spree_option_types"."id" = $1 ORDER BY spree_option_types.position LIMIT 1 [["id", 1]]
web_1 | Rendered engines/order_management/app/views/order_management/reports/_report.html.haml (101.1ms)
web_1 | Rendered engines/order_management/app/views/order_management/reports/bulk_coop/create.html.haml within spree/layouts/admin (107.9ms)
```
This fixes the following deprecation warning
```
DEPRECATION WARNING: Extra .css in SCSS file is unnecessary. Rename /usr/src/app/app/assets/stylesheets/darkswarm/variables.css.scss to /usr/src/app/app/assets/stylesheets/darkswar
m/variables.scss. (called from _app_views_layouts_darkswarm_html_haml___3990351141569700945_46957256630860 at /usr/src/app/app/views/layouts/darkswarm.html.haml:18)
(...)
```