Sha256: 157c0003639f2447d46bdd5efc1ced31b4063b39e6672e7d74c777d6a1e32f3c
Contents?: true
Size: 1.98 KB
Versions: 2
Compression:
Stored size: 1.98 KB
Contents
require 'rails_helper' module Theblog describe Admin::AccountsController, type: :controller do routes { Theblog::Engine.routes } let(:account) { FactoryGirl.create(:confirmed_account) } let(:created_account) { FactoryGirl.create(:theblog_account) } let(:params) do { user_name: 'John Doe', email: 'test@lk.lk', first_name: 'John', middle_name: 'Steven', last_name: 'Doe', role_ids: Theblog::Role.where(name: [:editor, :moderator]).map(&:id) } end before { sign_in account } describe "POST create" do it "raises exception if user is not an admin" do expect{ post :create }. to raise_error(Pundit::NotAuthorizedError) end it "creates post if user has an admin role" do account.roles << Theblog::Role.find_by(name: :admin) post :create, account: params expect(response).to redirect_to(action: :index) account = Theblog::Account.last params.each_key do |attr| next if attr == :role_ids expect(account[attr]).to eq(params[attr]) end expect(account.roles.map(&:name)).to eq(['moderator', 'editor']) end end describe "PATCH update" do before { created_account } it "raises exception if user is not an admin" do expect{ patch :update, id: created_account.id }. to raise_error(Pundit::NotAuthorizedError) end it "creates account if user has the admin role" do account.roles << Theblog::Role.find_by(name: :admin) patch :update, id: created_account.id, account: params expect(response).to redirect_to(action: :show) created_account.reload params.each_key do |attr| next if attr.in? [:role_ids, :email] expect(created_account[attr]).to eq(params[attr]) end expect(created_account.roles.map(&:name)).to eq(['moderator', 'editor']) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
theblog-0.0.2.3 | spec/controllers/theblog/admin/accounts_controller_spec.rb |
theblog-0.0.2.2 | spec/controllers/theblog/admin/accounts_controller_spec.rb |