diff --git a/app/assets/javascripts/settings/menu_item_sets.coffee b/app/assets/javascripts/settings/menu_item_sets.coffee new file mode 100644 index 00000000..24f83d18 --- /dev/null +++ b/app/assets/javascripts/settings/menu_item_sets.coffee @@ -0,0 +1,3 @@ +# Place all the behaviors and hooks related to the matching controller here. +# All this logic will automatically be available in application.js. +# You can use CoffeeScript in this file: http://coffeescript.org/ diff --git a/app/assets/stylesheets/settings/menu_item_sets.scss b/app/assets/stylesheets/settings/menu_item_sets.scss new file mode 100644 index 00000000..7f56c1b8 --- /dev/null +++ b/app/assets/stylesheets/settings/menu_item_sets.scss @@ -0,0 +1,3 @@ +// Place all the styles related to the Settings/Menu_item_sets controller here. +// They will automatically be included in application.css. +// You can use Sass (SCSS) here: http://sass-lang.com/ diff --git a/app/controllers/settings/item_sets_controller.rb b/app/controllers/settings/item_sets_controller.rb index ace39027..5564ed98 100644 --- a/app/controllers/settings/item_sets_controller.rb +++ b/app/controllers/settings/item_sets_controller.rb @@ -1,6 +1,6 @@ class Settings::ItemSetsController < ApplicationController before_action :set_settings_item_set, only: [:show, :edit, :update, :destroy] - + load_and_authorize_resource except: [:create] # GET /settings/item_sets # GET /settings/item_sets.json def index @@ -28,7 +28,7 @@ class Settings::ItemSetsController < ApplicationController respond_to do |format| if @settings_item_set.save - format.html { redirect_to @settings_item_set, notice: 'Item set was successfully created.' } + format.html { redirect_to settings_item_sets_path, notice: 'Item set was successfully created.' } format.json { render :show, status: :created, location: @settings_item_set } else format.html { render :new } @@ -42,7 +42,7 @@ class Settings::ItemSetsController < ApplicationController def update respond_to do |format| if @settings_item_set.update(settings_item_set_params) - format.html { redirect_to @settings_item_set, notice: 'Item set was successfully updated.' } + format.html { redirect_to settings_item_sets_path, notice: 'Item set was successfully updated.' } format.json { render :show, status: :ok, location: @settings_item_set } else format.html { render :edit } @@ -69,6 +69,6 @@ class Settings::ItemSetsController < ApplicationController # Never trust parameters from the scary internet, only allow the white list through. def settings_item_set_params - params.require(:settings_item_set).permit(:name, :min_selectable_qty, :max_selectable_qty) + params.require(:item_set).permit(:name, :min_selectable_qty, :max_selectable_qty) end end diff --git a/app/controllers/settings/menu_item_sets_controller.rb b/app/controllers/settings/menu_item_sets_controller.rb new file mode 100644 index 00000000..eb710e8c --- /dev/null +++ b/app/controllers/settings/menu_item_sets_controller.rb @@ -0,0 +1,74 @@ +class Settings::MenuItemSetsController < ApplicationController + before_action :set_settings_menu_item_set, only: [:show, :edit, :update, :destroy] + load_and_authorize_resource except: [:create] + # GET /settings/menu_item_sets + # GET /settings/menu_item_sets.json + def index + @settings_menu_item_sets = MenuItemSet.all + end + + # GET /settings/menu_item_sets/1 + # GET /settings/menu_item_sets/1.json + def show + end + + # GET /settings/menu_item_sets/new + def new + @settings_menu_item_set = MenuItemSet.new + end + + # GET /settings/menu_item_sets/1/edit + def edit + end + + # POST /settings/menu_item_sets + # POST /settings/menu_item_sets.json + def create + @settings_menu_item_set = MenuItemSet.new(settings_menu_item_set_params) + + respond_to do |format| + if @settings_menu_item_set.save + format.html { redirect_to settings_menu_item_sets_path, notice: 'Menu item set was successfully created.' } + format.json { render :show, status: :created, location: @settings_menu_item_set } + else + format.html { render :new } + format.json { render json: @settings_menu_item_set.errors, status: :unprocessable_entity } + end + end + end + + # PATCH/PUT /settings/menu_item_sets/1 + # PATCH/PUT /settings/menu_item_sets/1.json + def update + respond_to do |format| + if @settings_menu_item_set.update(settings_menu_item_set_params) + format.html { redirect_to settings_menu_item_sets_path, notice: 'Menu item set was successfully updated.' } + format.json { render :show, status: :ok, location: @settings_menu_item_set } + else + format.html { render :edit } + format.json { render json: @settings_menu_item_set.errors, status: :unprocessable_entity } + end + end + end + + # DELETE /settings/menu_item_sets/1 + # DELETE /settings/menu_item_sets/1.json + def destroy + @settings_menu_item_set.destroy + respond_to do |format| + format.html { redirect_to settings_menu_item_sets_url, notice: 'Menu item set was successfully destroyed.' } + format.json { head :no_content } + end + end + + private + # Use callbacks to share common setup or constraints between actions. + def set_settings_menu_item_set + @settings_menu_item_set = MenuItemSet.find(params[:id]) + end + + # Never trust parameters from the scary internet, only allow the white list through. + def settings_menu_item_set_params + params.require(:menu_item_set).permit(:item_set_id, :menu_item_id) + end +end diff --git a/app/helpers/settings/menu_item_sets_helper.rb b/app/helpers/settings/menu_item_sets_helper.rb new file mode 100644 index 00000000..3e909848 --- /dev/null +++ b/app/helpers/settings/menu_item_sets_helper.rb @@ -0,0 +1,2 @@ +module Settings::MenuItemSetsHelper +end diff --git a/app/models/ability.rb b/app/models/ability.rb index 9c1f5b68..38376d24 100644 --- a/app/models/ability.rb +++ b/app/models/ability.rb @@ -13,6 +13,8 @@ class Ability can :manage, MenuItemInstance can :manage, MenuItemOption can :manage, SetMenuItem + can :manage, ItemSet + can :manage, MenuItemSet can :manage, OrderQueueStation can :manage, Zone can :manage, CashierTerminal diff --git a/app/models/item_set.rb b/app/models/item_set.rb index 55bc0c6b..e4dca315 100644 --- a/app/models/item_set.rb +++ b/app/models/item_set.rb @@ -4,4 +4,6 @@ class ItemSet < ApplicationRecord has_many :menu_instance_item_sets has_many :menu_item_instances, through: :menu_instance_item_sets + + validates_presence_of :name end diff --git a/app/models/menu_item_set.rb b/app/models/menu_item_set.rb index a39b8522..7cd94bcb 100644 --- a/app/models/menu_item_set.rb +++ b/app/models/menu_item_set.rb @@ -2,3 +2,8 @@ class MenuItemSet < ApplicationRecord belongs_to :item_set belongs_to :menu_item end + +# class Settings::MenuItemSet < ApplicationRecord +# belongs_to :item_set_id +# belongs_to :menu_item_id +# end diff --git a/app/views/layouts/_header.html.erb b/app/views/layouts/_header.html.erb index bc5ce498..3a25b101 100644 --- a/app/views/layouts/_header.html.erb +++ b/app/views/layouts/_header.html.erb @@ -13,6 +13,8 @@
  • <%= link_to "Order Queue Stations",settings_order_queue_stations_path, :tabindex =>"-1" %>

  • <%= link_to "Menus ", settings_menus_path, :tabindex =>"-1" %>
  • +
  • <%= link_to "Item Sets ", settings_item_sets_path, :tabindex =>"-1" %>
  • +
  • <%= link_to "Menu Item Sets ", settings_menu_item_sets_path, :tabindex =>"-1" %>
  • <%= link_to "Menu Categories", settings_menu_categories_path, :tabindex =>"-1" %>
  • <%= link_to "Menu Item Attributes", settings_menu_item_attributes_path, :tabindex =>"-1" %>
  • <%= link_to "Menu Item Options",settings_menu_item_options_path, :tabindex =>"-1" %>
  • diff --git a/app/views/settings/item_sets/_form.html.erb b/app/views/settings/item_sets/_form.html.erb index 4e2760cd..e28cab09 100644 --- a/app/views/settings/item_sets/_form.html.erb +++ b/app/views/settings/item_sets/_form.html.erb @@ -1,13 +1,13 @@ -<%= simple_form_for(@settings_item_set) do |f| %> +<%= simple_form_for([:settings,@settings_item_set]) do |f| %> <%= f.error_notification %>
    <%= f.input :name %> - <%= f.input :min_selectable_qty %> - <%= f.input :max_selectable_qty %> + <%= f.input :min_selectable_qty,input_html: {value: f.object.min_selectable_qty || '0'} %> + <%= f.input :max_selectable_qty,input_html: {value: f.object.max_selectable_qty || '0'} %>
    - <%= f.button :submit %> + <%= f.button :submit ,:class=>'btn btn-success'%>
    <% end %> diff --git a/app/views/settings/item_sets/edit.html.erb b/app/views/settings/item_sets/edit.html.erb index 75a7f10a..2f0d54ba 100644 --- a/app/views/settings/item_sets/edit.html.erb +++ b/app/views/settings/item_sets/edit.html.erb @@ -1,6 +1,4 @@

    Editing Settings Item Set

    <%= render 'form', settings_item_set: @settings_item_set %> - -<%= link_to 'Show', @settings_item_set %> | -<%= link_to 'Back', settings_item_sets_path %> +<%= link_to 'Back', settings_item_sets_path,:class => 'btn btn-danger' %> diff --git a/app/views/settings/item_sets/index.html.erb b/app/views/settings/item_sets/index.html.erb index f5b50ad6..80db10b9 100644 --- a/app/views/settings/item_sets/index.html.erb +++ b/app/views/settings/item_sets/index.html.erb @@ -1,31 +1,38 @@ -

    <%= notice %>

    - -

    Settings Item Sets

    - - - - - - - - - - - - - <% @settings_item_sets.each do |settings_item_set| %> - - - - - - - - - <% end %> - -
    NameMin selectable qtyMax selectable qty
    <%= settings_item_set.name %><%= settings_item_set.min_selectable_qty %><%= settings_item_set.max_selectable_qty %><%= link_to 'Show', settings_item_set %><%= link_to 'Edit', edit_settings_item_set_path(settings_item_set) %><%= link_to 'Destroy', settings_item_set, method: :delete, data: { confirm: 'Are you sure?' } %>
    +
    +
    + + + + + + + + + + + + <% @settings_item_sets.each do |item| %> + + + + + + + <% end %> + + +
    NameMin selectable qtyMax selectable qtyAction
    <%= item.name %><%= item.min_selectable_qty %><%= item.max_selectable_qty %><%= link_to 'Show', settings_item_set_path(item),:class=>'btn btn-sm btn-success' %> + <%= link_to 'Edit', edit_settings_item_set_path(item),:class=>'btn btn-sm btn-primary' %> + <%= link_to 'Destroy', settings_item_set_path(item), method: :delete, data: { confirm: 'Are you sure?' } ,:class=>'btn btn-danger btn-sm'%>
    +
    -<%= link_to 'New Settings Item Set', new_settings_item_set_path %> diff --git a/app/views/settings/item_sets/new.html.erb b/app/views/settings/item_sets/new.html.erb index a2773f42..ff581dc6 100644 --- a/app/views/settings/item_sets/new.html.erb +++ b/app/views/settings/item_sets/new.html.erb @@ -2,4 +2,4 @@ <%= render 'form', settings_item_set: @settings_item_set %> -<%= link_to 'Back', settings_item_sets_path %> +<%= link_to 'Back', settings_item_sets_path,:class => 'btn btn-danger' %> diff --git a/app/views/settings/item_sets/show.html.erb b/app/views/settings/item_sets/show.html.erb index 5f7b01d0..f863b5fc 100644 --- a/app/views/settings/item_sets/show.html.erb +++ b/app/views/settings/item_sets/show.html.erb @@ -1,19 +1,34 @@ -

    <%= notice %>

    -

    - Name: - <%= @settings_item_set.name %> -

    + + +
    + + + + + + + + + + + + + + + + +
    Name:<%= @settings_item_set.name %>
    Min selectable qty: <%= @settings_item_set.min_selectable_qty %>
    Max selectable qty:<%= @settings_item_set.max_selectable_qty %>
    + <%= link_to 'Edit', edit_settings_item_set_path(@settings_item_set),:class=>'btn btn-primary' %> + <%= link_to 'Back', settings_item_sets_path,:class=>'btn btn-danger' %> +
    -

    - Max selectable qty: - <%= @settings_item_set.max_selectable_qty %> -

    -<%= link_to 'Edit', edit_settings_item_set_path(@settings_item_set) %> | -<%= link_to 'Back', settings_item_sets_path %> diff --git a/app/views/settings/menu_item_sets/_form.html.erb b/app/views/settings/menu_item_sets/_form.html.erb new file mode 100644 index 00000000..c0d239b4 --- /dev/null +++ b/app/views/settings/menu_item_sets/_form.html.erb @@ -0,0 +1,12 @@ +<%= simple_form_for([:settings,@settings_menu_item_set]) do |f| %> + <%= f.error_notification %> + +
    + <%= f.association :item_set %> + <%= f.association :menu_item %> +
    + +
    + <%= f.button :submit,:class=>'btn btn-success' %> +
    +<% end %> diff --git a/app/views/settings/menu_item_sets/_settings_menu_item_set.json.jbuilder b/app/views/settings/menu_item_sets/_settings_menu_item_set.json.jbuilder new file mode 100644 index 00000000..76c133fe --- /dev/null +++ b/app/views/settings/menu_item_sets/_settings_menu_item_set.json.jbuilder @@ -0,0 +1,2 @@ +json.extract! settings_menu_item_set, :id, :item_set_id_id, :menu_item_id_id, :created_at, :updated_at +json.url settings_menu_item_set_url(settings_menu_item_set, format: :json) diff --git a/app/views/settings/menu_item_sets/edit.html.erb b/app/views/settings/menu_item_sets/edit.html.erb new file mode 100644 index 00000000..ddd912ce --- /dev/null +++ b/app/views/settings/menu_item_sets/edit.html.erb @@ -0,0 +1,5 @@ +

    Editing Settings Menu Item Set

    + +<%= render 'form', settings_menu_item_set: @settings_menu_item_set %> + +<%= link_to 'Back', settings_menu_item_sets_path,:class => 'btn btn-danger' %> \ No newline at end of file diff --git a/app/views/settings/menu_item_sets/index.html.erb b/app/views/settings/menu_item_sets/index.html.erb new file mode 100644 index 00000000..0a2e50d2 --- /dev/null +++ b/app/views/settings/menu_item_sets/index.html.erb @@ -0,0 +1,37 @@ + + + +
    +
    + + + + + + + + + + + <% @settings_menu_item_sets.each do |item| %> + + + + + + <% end %> + +
    Item setMenu item
    <%= item.item_set.name %><%= item.menu_item.name %><%= link_to 'Show', settings_menu_item_set_path(item),:class=>'btn btn-sm btn-success' %> + <%= link_to 'Edit', edit_settings_menu_item_set_path(item),:class=>'btn btn-sm btn-primary' %> + <%= link_to 'Destroy', settings_menu_item_set_path(item), method: :delete, data: { confirm: 'Are you sure?' } ,:class=>'btn btn-danger btn-sm'%>
    + +
    + + diff --git a/app/views/settings/menu_item_sets/index.json.jbuilder b/app/views/settings/menu_item_sets/index.json.jbuilder new file mode 100644 index 00000000..3ac7917b --- /dev/null +++ b/app/views/settings/menu_item_sets/index.json.jbuilder @@ -0,0 +1 @@ +json.array! @settings_menu_item_sets, partial: 'settings_menu_item_sets/settings_menu_item_set', as: :settings_menu_item_set diff --git a/app/views/settings/menu_item_sets/new.html.erb b/app/views/settings/menu_item_sets/new.html.erb new file mode 100644 index 00000000..259e7bed --- /dev/null +++ b/app/views/settings/menu_item_sets/new.html.erb @@ -0,0 +1,5 @@ +

    New Settings Menu Item Set

    + +<%= render 'form', settings_menu_item_set: @settings_menu_item_set %> + +<%= link_to 'Back', settings_menu_item_sets_path,:class=>'btn btn-danger' %> diff --git a/app/views/settings/menu_item_sets/show.html.erb b/app/views/settings/menu_item_sets/show.html.erb new file mode 100644 index 00000000..a22b2cdb --- /dev/null +++ b/app/views/settings/menu_item_sets/show.html.erb @@ -0,0 +1,32 @@ + + +
    + + + + + + + + + + + + + + + + +
    Item Set Name:<%= @settings_menu_item_set.item_set.name %>
    Menu Item Name:<%= @settings_menu_item_set.menu_item.name %>
    Create At<%= @settings_menu_item_set.created_at %>
    + <%= link_to 'Edit', edit_settings_menu_item_set_path(@settings_menu_item_set),:class=>'btn btn-primary' %> + <%= link_to 'Back', settings_menu_item_sets_path,:class=>'btn btn-danger' %> +
    + diff --git a/app/views/settings/menu_item_sets/show.json.jbuilder b/app/views/settings/menu_item_sets/show.json.jbuilder new file mode 100644 index 00000000..4cb1ec44 --- /dev/null +++ b/app/views/settings/menu_item_sets/show.json.jbuilder @@ -0,0 +1 @@ +json.partial! "settings_menu_item_sets/settings_menu_item_set", settings_menu_item_set: @settings_menu_item_set diff --git a/spec/controllers/settings/menu_item_sets_controller_spec.rb b/spec/controllers/settings/menu_item_sets_controller_spec.rb new file mode 100644 index 00000000..e2446dbb --- /dev/null +++ b/spec/controllers/settings/menu_item_sets_controller_spec.rb @@ -0,0 +1,141 @@ +require 'rails_helper' + +# This spec was generated by rspec-rails when you ran the scaffold generator. +# It demonstrates how one might use RSpec to specify the controller code that +# was generated by Rails when you ran the scaffold generator. +# +# It assumes that the implementation code is generated by the rails scaffold +# generator. If you are using any extension libraries to generate different +# controller code, this generated spec may or may not pass. +# +# It only uses APIs available in rails and/or rspec-rails. There are a number +# of tools you can use to make these specs even more expressive, but we're +# sticking to rails and rspec-rails APIs to keep things simple and stable. +# +# Compared to earlier versions of this generator, there is very limited use of +# stubs and message expectations in this spec. Stubs are only used when there +# is no simpler way to get a handle on the object needed for the example. +# Message expectations are only used when there is no simpler way to specify +# that an instance is receiving a specific message. +# +# Also compared to earlier versions of this generator, there are no longer any +# expectations of assigns and templates rendered. These features have been +# removed from Rails core in Rails 5, but can be added back in via the +# `rails-controller-testing` gem. + +RSpec.describe Settings::MenuItemSetsController, type: :controller do + + # This should return the minimal set of attributes required to create a valid + # Settings::MenuItemSet. As you add validations to Settings::MenuItemSet, be sure to + # adjust the attributes here as well. + let(:valid_attributes) { + skip("Add a hash of attributes valid for your model") + } + + let(:invalid_attributes) { + skip("Add a hash of attributes invalid for your model") + } + + # This should return the minimal set of values that should be in the session + # in order to pass any filters (e.g. authentication) defined in + # Settings::MenuItemSetsController. Be sure to keep this updated too. + let(:valid_session) { {} } + + describe "GET #index" do + it "returns a success response" do + menu_item_set = Settings::MenuItemSet.create! valid_attributes + get :index, params: {}, session: valid_session + expect(response).to be_success + end + end + + describe "GET #show" do + it "returns a success response" do + menu_item_set = Settings::MenuItemSet.create! valid_attributes + get :show, params: {id: menu_item_set.to_param}, session: valid_session + expect(response).to be_success + end + end + + describe "GET #new" do + it "returns a success response" do + get :new, params: {}, session: valid_session + expect(response).to be_success + end + end + + describe "GET #edit" do + it "returns a success response" do + menu_item_set = Settings::MenuItemSet.create! valid_attributes + get :edit, params: {id: menu_item_set.to_param}, session: valid_session + expect(response).to be_success + end + end + + describe "POST #create" do + context "with valid params" do + it "creates a new Settings::MenuItemSet" do + expect { + post :create, params: {settings_menu_item_set: valid_attributes}, session: valid_session + }.to change(Settings::MenuItemSet, :count).by(1) + end + + it "redirects to the created settings_menu_item_set" do + post :create, params: {settings_menu_item_set: valid_attributes}, session: valid_session + expect(response).to redirect_to(Settings::MenuItemSet.last) + end + end + + context "with invalid params" do + it "returns a success response (i.e. to display the 'new' template)" do + post :create, params: {settings_menu_item_set: invalid_attributes}, session: valid_session + expect(response).to be_success + end + end + end + + describe "PUT #update" do + context "with valid params" do + let(:new_attributes) { + skip("Add a hash of attributes valid for your model") + } + + it "updates the requested settings_menu_item_set" do + menu_item_set = Settings::MenuItemSet.create! valid_attributes + put :update, params: {id: menu_item_set.to_param, settings_menu_item_set: new_attributes}, session: valid_session + menu_item_set.reload + skip("Add assertions for updated state") + end + + it "redirects to the settings_menu_item_set" do + menu_item_set = Settings::MenuItemSet.create! valid_attributes + put :update, params: {id: menu_item_set.to_param, settings_menu_item_set: valid_attributes}, session: valid_session + expect(response).to redirect_to(menu_item_set) + end + end + + context "with invalid params" do + it "returns a success response (i.e. to display the 'edit' template)" do + menu_item_set = Settings::MenuItemSet.create! valid_attributes + put :update, params: {id: menu_item_set.to_param, settings_menu_item_set: invalid_attributes}, session: valid_session + expect(response).to be_success + end + end + end + + describe "DELETE #destroy" do + it "destroys the requested settings_menu_item_set" do + menu_item_set = Settings::MenuItemSet.create! valid_attributes + expect { + delete :destroy, params: {id: menu_item_set.to_param}, session: valid_session + }.to change(Settings::MenuItemSet, :count).by(-1) + end + + it "redirects to the settings_menu_item_sets list" do + menu_item_set = Settings::MenuItemSet.create! valid_attributes + delete :destroy, params: {id: menu_item_set.to_param}, session: valid_session + expect(response).to redirect_to(settings_menu_item_sets_url) + end + end + +end diff --git a/spec/helpers/settings/menu_item_sets_helper_spec.rb b/spec/helpers/settings/menu_item_sets_helper_spec.rb new file mode 100644 index 00000000..04329a19 --- /dev/null +++ b/spec/helpers/settings/menu_item_sets_helper_spec.rb @@ -0,0 +1,15 @@ +require 'rails_helper' + +# Specs in this file have access to a helper object that includes +# the Settings::MenuItemSetsHelper. For example: +# +# describe Settings::MenuItemSetsHelper do +# describe "string concat" do +# it "concats two strings with spaces" do +# expect(helper.concat_strings("this","that")).to eq("this that") +# end +# end +# end +RSpec.describe Settings::MenuItemSetsHelper, type: :helper do + pending "add some examples to (or delete) #{__FILE__}" +end diff --git a/spec/models/settings/menu_item_set_spec.rb b/spec/models/settings/menu_item_set_spec.rb new file mode 100644 index 00000000..e53b1208 --- /dev/null +++ b/spec/models/settings/menu_item_set_spec.rb @@ -0,0 +1,5 @@ +require 'rails_helper' + +RSpec.describe Settings::MenuItemSet, type: :model do + pending "add some examples to (or delete) #{__FILE__}" +end diff --git a/spec/requests/settings/settings_menu_item_sets_spec.rb b/spec/requests/settings/settings_menu_item_sets_spec.rb new file mode 100644 index 00000000..a0d9776c --- /dev/null +++ b/spec/requests/settings/settings_menu_item_sets_spec.rb @@ -0,0 +1,10 @@ +require 'rails_helper' + +RSpec.describe "Settings::MenuItemSets", type: :request do + describe "GET /settings_menu_item_sets" do + it "works! (now write some real specs)" do + get settings_menu_item_sets_path + expect(response).to have_http_status(200) + end + end +end diff --git a/spec/routing/settings/menu_item_sets_routing_spec.rb b/spec/routing/settings/menu_item_sets_routing_spec.rb new file mode 100644 index 00000000..f319e6e6 --- /dev/null +++ b/spec/routing/settings/menu_item_sets_routing_spec.rb @@ -0,0 +1,39 @@ +require "rails_helper" + +RSpec.describe Settings::MenuItemSetsController, type: :routing do + describe "routing" do + + it "routes to #index" do + expect(:get => "/settings/menu_item_sets").to route_to("settings/menu_item_sets#index") + end + + it "routes to #new" do + expect(:get => "/settings/menu_item_sets/new").to route_to("settings/menu_item_sets#new") + end + + it "routes to #show" do + expect(:get => "/settings/menu_item_sets/1").to route_to("settings/menu_item_sets#show", :id => "1") + end + + it "routes to #edit" do + expect(:get => "/settings/menu_item_sets/1/edit").to route_to("settings/menu_item_sets#edit", :id => "1") + end + + it "routes to #create" do + expect(:post => "/settings/menu_item_sets").to route_to("settings/menu_item_sets#create") + end + + it "routes to #update via PUT" do + expect(:put => "/settings/menu_item_sets/1").to route_to("settings/menu_item_sets#update", :id => "1") + end + + it "routes to #update via PATCH" do + expect(:patch => "/settings/menu_item_sets/1").to route_to("settings/menu_item_sets#update", :id => "1") + end + + it "routes to #destroy" do + expect(:delete => "/settings/menu_item_sets/1").to route_to("settings/menu_item_sets#destroy", :id => "1") + end + + end +end diff --git a/spec/views/settings/menu_item_sets/edit.html.erb_spec.rb b/spec/views/settings/menu_item_sets/edit.html.erb_spec.rb new file mode 100644 index 00000000..044ebf7d --- /dev/null +++ b/spec/views/settings/menu_item_sets/edit.html.erb_spec.rb @@ -0,0 +1,21 @@ +require 'rails_helper' + +RSpec.describe "settings/menu_item_sets/edit", type: :view do + before(:each) do + @settings_menu_item_set = assign(:settings_menu_item_set, Settings::MenuItemSet.create!( + :item_set_id => nil, + :menu_item_id => nil + )) + end + + it "renders the edit settings_menu_item_set form" do + render + + assert_select "form[action=?][method=?]", settings_menu_item_set_path(@settings_menu_item_set), "post" do + + assert_select "input[name=?]", "settings_menu_item_set[item_set_id_id]" + + assert_select "input[name=?]", "settings_menu_item_set[menu_item_id_id]" + end + end +end diff --git a/spec/views/settings/menu_item_sets/index.html.erb_spec.rb b/spec/views/settings/menu_item_sets/index.html.erb_spec.rb new file mode 100644 index 00000000..efbb5448 --- /dev/null +++ b/spec/views/settings/menu_item_sets/index.html.erb_spec.rb @@ -0,0 +1,22 @@ +require 'rails_helper' + +RSpec.describe "settings/menu_item_sets/index", type: :view do + before(:each) do + assign(:settings_menu_item_sets, [ + Settings::MenuItemSet.create!( + :item_set_id => nil, + :menu_item_id => nil + ), + Settings::MenuItemSet.create!( + :item_set_id => nil, + :menu_item_id => nil + ) + ]) + end + + it "renders a list of settings/menu_item_sets" do + render + assert_select "tr>td", :text => nil.to_s, :count => 2 + assert_select "tr>td", :text => nil.to_s, :count => 2 + end +end diff --git a/spec/views/settings/menu_item_sets/new.html.erb_spec.rb b/spec/views/settings/menu_item_sets/new.html.erb_spec.rb new file mode 100644 index 00000000..e755cff1 --- /dev/null +++ b/spec/views/settings/menu_item_sets/new.html.erb_spec.rb @@ -0,0 +1,21 @@ +require 'rails_helper' + +RSpec.describe "settings/menu_item_sets/new", type: :view do + before(:each) do + assign(:settings_menu_item_set, Settings::MenuItemSet.new( + :item_set_id => nil, + :menu_item_id => nil + )) + end + + it "renders new settings_menu_item_set form" do + render + + assert_select "form[action=?][method=?]", settings_menu_item_sets_path, "post" do + + assert_select "input[name=?]", "settings_menu_item_set[item_set_id_id]" + + assert_select "input[name=?]", "settings_menu_item_set[menu_item_id_id]" + end + end +end diff --git a/spec/views/settings/menu_item_sets/show.html.erb_spec.rb b/spec/views/settings/menu_item_sets/show.html.erb_spec.rb new file mode 100644 index 00000000..ca9e5d5c --- /dev/null +++ b/spec/views/settings/menu_item_sets/show.html.erb_spec.rb @@ -0,0 +1,16 @@ +require 'rails_helper' + +RSpec.describe "settings/menu_item_sets/show", type: :view do + before(:each) do + @settings_menu_item_set = assign(:settings_menu_item_set, Settings::MenuItemSet.create!( + :item_set_id => nil, + :menu_item_id => nil + )) + end + + it "renders attributes in

    " do + render + expect(rendered).to match(//) + expect(rendered).to match(//) + end +end diff --git a/test/system/menu_item_sets_test.rb b/test/system/menu_item_sets_test.rb new file mode 100644 index 00000000..35949a53 --- /dev/null +++ b/test/system/menu_item_sets_test.rb @@ -0,0 +1,9 @@ +require "application_system_test_case" + +class Settings::MenuItemSetsTest < ApplicationSystemTestCase + # test "visiting the index" do + # visit settings_menu_item_sets_url + # + # assert_selector "h1", text: "Settings::MenuItemSet" + # end +end