parent
934d0bda0e
commit
882fa84de9
@ -1,7 +1,8 @@
|
|||||||
class SqmCategory < ActiveRecord::Base
|
class SqmCategory < ActiveRecord::Base
|
||||||
include FriendlyId
|
include FriendlyId
|
||||||
|
|
||||||
friendly_id :name, use: [:slugged]
|
friendly_id :name, use: [:slugged]
|
||||||
|
|
||||||
|
scope :sorted, ->() { order(:sort_index) }
|
||||||
|
|
||||||
has_many :subcategories
|
has_many :subcategories
|
||||||
end
|
end
|
||||||
|
|||||||
@ -0,0 +1,16 @@
|
|||||||
|
require 'rails_helper'
|
||||||
|
|
||||||
|
describe DashboardController, type: :controller do
|
||||||
|
include BasicAuthHelper
|
||||||
|
let(:school) { create(:school) }
|
||||||
|
let(:district) { create(:district) }
|
||||||
|
let!(:categories) {
|
||||||
|
[create(:sqm_category, name: 'Second', sort_index: 2), create(:sqm_category, name: 'First', sort_index: 1)]
|
||||||
|
}
|
||||||
|
|
||||||
|
it 'fetches categories sorted by sort_index' do
|
||||||
|
login_as district
|
||||||
|
get :index, params: { school_id: school.to_param, district_id: district.to_param }
|
||||||
|
expect(assigns(:category_presenters).map(&:name)).to eql ['First', 'Second']
|
||||||
|
end
|
||||||
|
end
|
||||||
@ -0,0 +1,12 @@
|
|||||||
|
require 'rails_helper'
|
||||||
|
|
||||||
|
describe HomeController, type: :controller do
|
||||||
|
let!(:categories) {
|
||||||
|
[create(:sqm_category, name: 'Second', sort_index: 2), create(:sqm_category, name: 'First', sort_index: 1)]
|
||||||
|
}
|
||||||
|
|
||||||
|
it 'fetches categories sorted by sort_index' do
|
||||||
|
get :index
|
||||||
|
expect(assigns(:categories).map(&:name)).to eql ['First', 'Second']
|
||||||
|
end
|
||||||
|
end
|
||||||
@ -0,0 +1,17 @@
|
|||||||
|
require 'rails_helper'
|
||||||
|
|
||||||
|
describe SqmCategoriesController, type: :controller do
|
||||||
|
include BasicAuthHelper
|
||||||
|
let(:school) { create(:school) }
|
||||||
|
let(:district) { create(:district) }
|
||||||
|
let!(:categories) {
|
||||||
|
[create(:sqm_category, name: 'Second', sort_index: 2), create(:sqm_category, name: 'First', sort_index: 1)]
|
||||||
|
}
|
||||||
|
|
||||||
|
it 'fetches categories sorted by sort_index' do
|
||||||
|
login_as district
|
||||||
|
category = categories.first
|
||||||
|
get :show, params: { id: category.to_param, school_id: school.to_param, district_id: district.to_param }
|
||||||
|
expect(assigns(:categories).map(&:name)).to eql ['First', 'Second']
|
||||||
|
end
|
||||||
|
end
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
module BasicAuthHelper
|
||||||
|
def login_as(district)
|
||||||
|
user = district.name.downcase
|
||||||
|
pw = "#{district.name.downcase}!"
|
||||||
|
request.env['HTTP_AUTHORIZATION'] = ActionController::HttpAuthentication::Basic.encode_credentials(user, pw)
|
||||||
|
end
|
||||||
|
end
|
||||||
Loading…
Reference in new issue