Commit a179a115 by Rocky Duan

add more details for comment thread retrieval spec & bug fix

parent 18327d93
......@@ -32,7 +32,7 @@ class Comment
def to_hash(params={})
if params[:recursive]
self.class.hash_tree(subtree(order_by: [[:parent_ids, :asc], [:created_at, :asc]]))
self.class.hash_tree(subtree(order_by: [[:parent_ids, :asc], [:created_at, :asc]])).first
else
as_document.slice(*%w[body course_id endorsed _id]).
merge("user_id" => author.external_id).
......
require 'spec_helper'
require 'yajl'
describe "app" do
before :each do
......@@ -23,6 +22,10 @@ describe "app" do
comment = comment.children.create!(body: "not for me!", course_id: "1")
comment.author = user
comment.save!
comment = comment.children.create!(body: "not for me neither!", course_id: "1")
comment.author = user
comment.save!
comment = comment_thread.comments.create!(body: "see the textbook on page 69. it's quite similar", course_id: "1")
comment.author = user
comment.save!
......@@ -47,15 +50,15 @@ describe "app" do
comment.author = user
comment.save!
users = (1..10).map{|id| User.find_or_create_by(external_id: id.to_s)}
Comment.all.each do |c|
(1..10).each do |id|
User.find_or_create_by(external_id: id.to_s).vote(c, [:up, :down].sample)
end
users.each {|user| user.vote(c, [:up, :down].sample)}
end
CommentThread.all.each do |c|
(1..10).each do |id|
User.find_or_create_by(external_id: id.to_s).vote(c, [:up, :down].sample)
end
users.each {|user| user.vote(c, [:up, :down].sample)}
end
end
......@@ -77,8 +80,17 @@ describe "app" do
comment_threads.length.should == 2
comment_threads.index{|c| c["body"] == "can anyone help me?"}.should_not be_nil
comment_threads.index{|c| c["body"] == "it is unsolvable"}.should_not be_nil
comment_thread = comment_threads.first
comment_thread["children"].length.should == 2
comment_thread = comment_threads.select{|c| c["body"] == "can anyone help me?"}.first
children = comment_thread["children"]
children.length.should == 2
children.index{|c| c["body"] == "this problem is so easy"}.should_not be_nil
children.index{|c| c["body"] =~ /^see the textbook/}.should_not be_nil
so_easy = children.select{|c| c["body"] == "this problem is so easy"}.first
so_easy["children"].length.should == 1
not_for_me = so_easy["children"].first
not_for_me["body"].should == "not for me!"
not_for_me["children"].length.should == 1
not_for_me["children"].first["body"].should == "not for me neither!"
end
end
......
......@@ -2,6 +2,7 @@ require File.join(File.dirname(__FILE__), '..', 'app')
require 'sinatra'
require 'rack/test'
require 'yajl'
# setup test environment
set :environment, :test
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment