MS DC; fix participate stream ordering problem that was putting new posts on the bottom of things

This commit is contained in:
Dennis Collinson 2012-02-06 16:51:32 -08:00
parent 578e8ef269
commit a399572995
7 changed files with 78 additions and 9 deletions

View file

@ -32,7 +32,6 @@ class StreamsController < ApplicationController
end
def participate
puts params.inspect
stream_responder(Stream::Participate)
end

View file

@ -0,0 +1,21 @@
@javascript
Feature: The participate stream
Scenario: Sorting
Given a user with username "bob"
When I sign in as "bob@bob.bob"
And I post "A- I like turtles"
And I post "B- barack obama is your new bicycle"
And I post "C- barack obama is a square"
When I pin the post "A- I like turtles"
And I wait for 1 second
And I comment "Sassy sawfish" on "C- barack obama is a square"
And I wait for 1 second
And I pin the post "B- barack obama is your new bicycle"
And I wait for 1 second
When I go to the participate stream page
Then "B- barack obama is your new bicycle" should be post 1
And "C- barack obama is a square" should be post 2
And "A- I like turtles" should be post 3

View file

@ -1,5 +1,5 @@
When /^I focus the comment field$/ do
find("a.focus_comment_textarea").click
focus_comment_box
end
Then /^the first comment field should be open/ do
@ -9,3 +9,8 @@ end
Then /^the first comment field should be closed$/ do
find("#main_stream .stream_element .new_comment").should_not be_visible
end
When /^I comment "([^"]*)" on "([^"]*)"$/ do |comment_text, post_text|
comment_on_post(post_text, comment_text)
end

View file

@ -1,3 +1,11 @@
Then /^I should see an image in the publisher$/ do
photo_in_publisher.should be_present
end
end
Then /^I pin the post "([^"]*)"$/ do |post_text|
pin_post(post_text)
end
Then /^"([^"]*)" should be post (\d+)$/ do |post_text, position|
find(".stream_element:nth-child(#{position}) .post-content").text.should == post_text
end

View file

@ -25,6 +25,40 @@ module PublishingCukeHelpers
find(".stream_element:contains('#{text}')")
end
def pin_post(post_text)
within_post(post_text) do
click_link 'Pin'
end
wait_for_ajax_to_finish
end
def within_post(post_text)
within find_post_by_text(post_text) do
yield
end
end
def stream_posts
all('.stream_element')
end
def comment_on_post(post_text, comment_text)
within_post(post_text) do
focus_comment_box
make_comment(comment_text)
end
wait_for_ajax_to_finish
end
def make_comment(text)
fill_in "text", :with => text
click_button :submit
end
def focus_comment_box
find("a.focus_comment_textarea").click
end
def wait_for_ajax_to_finish(wait_time=15)
wait_until(wait_time) { evaluate_script("$.active") == 0 }
end

View file

@ -9,9 +9,4 @@ app.collections.Posts = Backbone.Collection.extend({
parse: function(resp){
return resp.posts;
}
//
//
// comparator : function(post) {
// return -post.createdAt();
// }
});

View file

@ -1,6 +1,13 @@
app.models.Stream = Backbone.Collection.extend({
initialize : function(){
this.posts = new app.collections.Posts();
this.posts = new app.collections.Posts([], this.postOptions());
},
postOptions :function(){
var order = this.sortOrder();
return {
comparator : function(post) { return -post[order](); }
}
},
url : function(){