parent
934d0bda0e
commit
882fa84de9
@ -1,7 +1,8 @@
|
||||
class SqmCategory < ActiveRecord::Base
|
||||
include FriendlyId
|
||||
|
||||
friendly_id :name, use: [:slugged]
|
||||
|
||||
scope :sorted, ->() { order(:sort_index) }
|
||||
|
||||
has_many :subcategories
|
||||
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