2
0
Fork 0
mirror of https://github.com/discourse/discourse.git synced 2025-09-05 08:59:27 +08:00

Code to support EmberJS + Discourse Tutorial feature: Admin Reports

This commit is contained in:
Robin Ward 2013-02-27 22:39:42 -05:00
parent 416f981f92
commit dc8e1196fd
11 changed files with 213 additions and 0 deletions

View file

@ -0,0 +1,65 @@
require 'spec_helper'
describe Admin::ReportsController do
it "is a subclass of AdminController" do
(Admin::ReportsController < Admin::AdminController).should be_true
end
context 'while logged in as an admin' do
let!(:admin) { log_in(:admin) }
let(:user) { Fabricate(:user) }
context '.show' do
context "invalid id form" do
let(:invalid_id) { "!!&asdfasdf" }
it "never calls Report.find" do
Report.expects(:find).never
xhr :get, :show, type: invalid_id
end
it "returns 404" do
xhr :get, :show, type: invalid_id
response.status.should == 404
end
end
context "valid type form" do
context 'missing report' do
before do
Report.expects(:find).with('active').returns(nil)
xhr :get, :show, type: 'active'
end
it "renders the report as JSON" do
response.status.should == 404
end
end
context 'a report is found' do
before do
Report.expects(:find).with('active').returns(Report.new('active'))
xhr :get, :show, type: 'active'
end
it "renders the report as JSON" do
response.should be_success
end
it "renders the report as JSON" do
::JSON.parse(response.body).should be_present
end
end
end
end
end
end

View file

@ -0,0 +1,34 @@
require 'spec_helper'
describe Report do
describe 'visits report' do
let(:report) { Report.find('visits') }
context "no visits" do
it "returns an empty report" do
report.data.should be_blank
end
end
context "with visits" do
let(:user) { Fabricate(:user) }
before do
user.user_visits.create(visited_at: 1.day.ago)
user.user_visits.create(visited_at: 2.days.ago)
end
it "returns a report with data" do
report.data.should be_present
end
end
end
end