From d95c5ff8a80a07af68a56f664eee7f942d1f00de Mon Sep 17 00:00:00 2001 From: Neal Chambers Date: Mon, 6 Mar 2023 15:07:52 +0900 Subject: [PATCH] Use Spree Taxon Controller instead of API Taxon Controller Add tests for reordering taxons --- .../admin/spree/taxons/taxonomy.js.coffee | 2 +- .../spree/admin/taxons_controller_spec.rb | 32 +++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 spec/controllers/spree/admin/taxons_controller_spec.rb diff --git a/app/assets/javascripts/admin/spree/taxons/taxonomy.js.coffee b/app/assets/javascripts/admin/spree/taxons/taxonomy.js.coffee index db051b1b20..a5b01868b1 100644 --- a/app/assets/javascripts/admin/spree/taxons/taxonomy.js.coffee +++ b/app/assets/javascripts/admin/spree/taxons/taxonomy.js.coffee @@ -8,7 +8,7 @@ handle_move = (e, data) -> node = data.rslt.o new_parent = data.rslt.np - url = new URL(base_url) + url = new URL(Spree.routes.admin_taxonomy_taxons) url.pathname = url.pathname + '/' + node.attr("id") data = { _method: "put", diff --git a/spec/controllers/spree/admin/taxons_controller_spec.rb b/spec/controllers/spree/admin/taxons_controller_spec.rb new file mode 100644 index 0000000000..111d37730e --- /dev/null +++ b/spec/controllers/spree/admin/taxons_controller_spec.rb @@ -0,0 +1,32 @@ +# frozen_string_literal: true + +require 'spec_helper' + +describe Spree::Admin::TaxonsController do + render_views + + let(:taxonomy) { create(:taxonomy) } + let(:taxon) { create(:taxon, name: "Ruby", taxonomy: taxonomy) } + let(:taxon2) { create(:taxon, name: "Rails", taxonomy: taxonomy) } + + before do + allow(controller).to receive(:spree_current_user) { current_api_user } + + taxonomy.root.children << taxon + taxonomy.root.children << taxon2 + end + + context "as an admin" do + let(:current_api_user) { build(:admin_user) } + + it "can reorder taxons" do + spree_post :update, + taxonomy_id: taxonomy.id, + id: taxon2.id, + taxon: { parent_id: taxonomy.root.id, position: 0 } + + expect(taxon2.reload.lft).to eq 2 + expect(Spree::Taxonomy.find(taxonomy.id).root.children.first).to eq(taxon2) + end + end +end