summaryrefslogtreecommitdiff
path: root/engines/support/test/unit/ticket_test.rb
diff options
context:
space:
mode:
authorAzul <azul@leap.se>2014-04-11 10:03:19 +0200
committerAzul <azul@leap.se>2014-04-11 10:07:23 +0200
commit636692f9921bd695d726695d2d46c91f5a6e56f3 (patch)
treea7cc0b89007bd273ae7719f31c16e052a141fec7 /engines/support/test/unit/ticket_test.rb
parent32136605ddd405a0bf47f3b795b22fd4b49465b5 (diff)
move engines into engines directory
Also renamed help to support so it's harder to confuse it with documentation
Diffstat (limited to 'engines/support/test/unit/ticket_test.rb')
-rw-r--r--engines/support/test/unit/ticket_test.rb88
1 files changed, 88 insertions, 0 deletions
diff --git a/engines/support/test/unit/ticket_test.rb b/engines/support/test/unit/ticket_test.rb
new file mode 100644
index 0000000..f5e6ea7
--- /dev/null
+++ b/engines/support/test/unit/ticket_test.rb
@@ -0,0 +1,88 @@
+require 'test_helper'
+
+class TicketTest < ActiveSupport::TestCase
+
+ test "ticket with default attribs is valid" do
+ t = FactoryGirl.build :ticket
+ assert t.valid?
+ end
+
+ test "ticket without email is valid" do
+ t = FactoryGirl.build :ticket, email: ""
+ assert t.valid?
+ end
+
+ test "ticket validates email format" do
+ t = FactoryGirl.build :ticket, email: "aswerssfd"
+ assert !t.valid?
+ end
+
+ test "ticket open states" do
+ t = FactoryGirl.build :ticket
+ assert t.is_open
+ t.close
+ assert !t.is_open
+ t.reopen
+ assert t.is_open
+ end
+
+ test "creation validated" do
+ @sample = Ticket.new
+ assert !@sample.is_creator_validated?
+ #p current_user
+ @sample.created_by = 22 #current_user
+ assert @sample.is_creator_validated?
+ end
+
+ test "destroy all tickets from a user" do
+ t = FactoryGirl.create :ticket_with_creator
+ u = t.created_by_user
+ Ticket.destroy_all_from(u)
+ assert_equal nil, Ticket.find(t.id)
+ end
+=begin
+# TODO: do once have current_user stuff in order
+ test "code if & only if not creator-validated" do
+ User.current_test = nil
+ t1 = Ticket.create :subject => 'test title'
+ assert_not_nil t1.code
+ assert_nil t1.created_by
+
+ User.current_test = 4
+ t2 = Ticket.create :subject => 'test title'
+ assert_nil t2.code
+ assert_not_nil t2.created_by
+ end
+=end
+
+
+ test "find tickets user commented on" do
+
+ # clear old tickets just in case
+ # this will cause RestClient::ResourceNotFound errors if there are multiple copies of the same ticket returned
+ Ticket.by_includes_post_by.key('123').each {|t| t.destroy}
+ # TODO: the by_includes_post_by view is only used for tests. Maybe we should get rid of it and change the test to including ordering?
+
+
+ testticket = Ticket.create :subject => "test retrieving commented tickets"
+ comment = TicketComment.new :body => "my email broke", :posted_by => "123"
+ assert_equal 0, testticket.comments.count
+ assert_equal [], Ticket.by_includes_post_by.key('123').all
+
+ testticket.comments << comment
+ testticket.save
+ assert_equal 1, testticket.reload.comments.count
+ assert_equal [testticket], Ticket.by_includes_post_by.key('123').all
+
+ comment = TicketComment.new :body => "another comment", :posted_by => "123"
+ testticket.comments << comment
+ testticket.save
+
+ # this will ensure that the ticket is only included once, even though the user has commented on the ticket twice:
+ assert_equal [testticket], Ticket.by_includes_post_by.key('123').all
+
+ testticket.destroy
+ assert_equal [], Ticket.by_includes_post_by.key('123').all;
+ end
+
+end