From d620fd42925f1d3d29a66bb61a75bed8c2bdaf8f Mon Sep 17 00:00:00 2001 From: Azul Date: Wed, 6 Nov 2013 10:40:32 +0100 Subject: refactor: split up and cleaned up ticket validation tests --- help/test/unit/ticket_test.rb | 41 +++++++++++++++++++---------------------- 1 file changed, 19 insertions(+), 22 deletions(-) (limited to 'help/test/unit') diff --git a/help/test/unit/ticket_test.rb b/help/test/unit/ticket_test.rb index ce35e1d..04832d9 100644 --- a/help/test/unit/ticket_test.rb +++ b/help/test/unit/ticket_test.rb @@ -1,41 +1,38 @@ require 'test_helper' class TicketTest < ActiveSupport::TestCase - #test "the truth" do - # assert true - #end - setup do - @sample = Ticket.new + test "ticket with default attribs is valid" do + t = FactoryGirl.build :ticket + assert t.valid? end - test "validity" do - t = Ticket.create :title => 'test title', :email => 'blah@blah.com' + test "ticket without email is valid" do + t = FactoryGirl.build :ticket, email: "" assert t.valid? - assert_equal t.title, 'test title' + end + + test "ticket validates email format" do + t = FactoryGirl.build :ticket, email: "aswerssfd" + assert !t.valid? + end + test "ticket allows for multiple email addresses" do + t = FactoryGirl.build :ticket, email: 'blah@blah.com, bb@jjj.org' + 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 - #user = LeapWebHelp::User.new(User.valid_attributes_hash) - #user = LeapWebUsers::User.create - - #t.user = user - - #t.email = '' #invalid - #assert !t.valid? - #t.email = 'blah@blah.com, bb@jjj.org' - #assert t.valid? - t.email = 'bdlfjlkasfjklasjf' #invalid - #p t.email_address - #p t.email_address.strip =~ RFC822::EmailAddress - assert !t.valid? - t.reload.destroy end test "creation validated" do + @sample = Ticket.new assert !@sample.is_creator_validated? #p current_user @sample.created_by = 22 #current_user -- cgit v1.2.3 From ebc60f3aba1ca08e454ba5e91f49905df2e5fa13 Mon Sep 17 00:00:00 2001 From: Azul Date: Wed, 6 Nov 2013 10:55:25 +0100 Subject: Ticket.destroy_all_from(user) - remove all tickets created by a user We'll use this to clean up after user destruction --- help/test/unit/ticket_test.rb | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'help/test/unit') diff --git a/help/test/unit/ticket_test.rb b/help/test/unit/ticket_test.rb index 04832d9..6c29d11 100644 --- a/help/test/unit/ticket_test.rb +++ b/help/test/unit/ticket_test.rb @@ -39,6 +39,12 @@ class TicketTest < ActiveSupport::TestCase 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 -- cgit v1.2.3 From 24598b5c5e4df20c423ec74ea8e9df1592483c6b Mon Sep 17 00:00:00 2001 From: Azul Date: Wed, 6 Nov 2013 11:26:46 +0100 Subject: destroy all tickets created by a user when account is destroyed In order to keep the users engine independent of the tickets engine i added a generic load hook to the account model. The tickets engine then monkeypatches the account destruction and destroys all tickets before the user is destroyed. The tickets are destroyed first so that even if things break there should never be tickets with an outdated user id. I would have prefered to use super over using an alias_method_chain but I have not been able to figure out a way to make account a superclass of the account extension and still refer to Account from the users engine. --- help/test/unit/account_extension_test.rb | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 help/test/unit/account_extension_test.rb (limited to 'help/test/unit') diff --git a/help/test/unit/account_extension_test.rb b/help/test/unit/account_extension_test.rb new file mode 100644 index 0000000..aba162c --- /dev/null +++ b/help/test/unit/account_extension_test.rb @@ -0,0 +1,12 @@ +require 'test_helper' + +class AccountExtensionTest < ActiveSupport::TestCase + + test "destroying an account triggers ticket destruction" do + t = FactoryGirl.create :ticket_with_creator + u = t.created_by_user + Account.new(u).destroy + assert_equal nil, Ticket.find(t.id) + end + +end -- cgit v1.2.3 From 69a41bee2548fa8743dd3188b0ebfc84dac17062 Mon Sep 17 00:00:00 2001 From: Azul Date: Fri, 8 Nov 2013 09:48:57 +0100 Subject: removed outdated test. --- help/test/unit/ticket_test.rb | 5 ----- 1 file changed, 5 deletions(-) (limited to 'help/test/unit') diff --git a/help/test/unit/ticket_test.rb b/help/test/unit/ticket_test.rb index 6c29d11..751fe70 100644 --- a/help/test/unit/ticket_test.rb +++ b/help/test/unit/ticket_test.rb @@ -17,11 +17,6 @@ class TicketTest < ActiveSupport::TestCase assert !t.valid? end - test "ticket allows for multiple email addresses" do - t = FactoryGirl.build :ticket, email: 'blah@blah.com, bb@jjj.org' - assert !t.valid? - end - test "ticket open states" do t = FactoryGirl.build :ticket assert t.is_open -- cgit v1.2.3 From 3104677b8d96cd4a118022267abc7bed818f8ddd Mon Sep 17 00:00:00 2001 From: jessib Date: Mon, 11 Nov 2013 16:02:35 -0800 Subject: Rename ticket title to be subject, as that is what we are displaying it as. --- help/test/unit/ticket_comment_test.rb | 2 +- help/test/unit/ticket_test.rb | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'help/test/unit') diff --git a/help/test/unit/ticket_comment_test.rb b/help/test/unit/ticket_comment_test.rb index 44865ed..fe8cc95 100644 --- a/help/test/unit/ticket_comment_test.rb +++ b/help/test/unit/ticket_comment_test.rb @@ -36,7 +36,7 @@ class TicketCommentTest < ActiveSupport::TestCase =end test "add comments" do - testticket = Ticket.create :title => "testing" + testticket = Ticket.create :subject => "testing" assert_equal testticket.comments.count, 0 comment = TicketComment.new :body => "my email broke" #assert comment.valid? #validating or saving necessary for setting posted_at diff --git a/help/test/unit/ticket_test.rb b/help/test/unit/ticket_test.rb index 751fe70..f5e6ea7 100644 --- a/help/test/unit/ticket_test.rb +++ b/help/test/unit/ticket_test.rb @@ -44,12 +44,12 @@ class TicketTest < ActiveSupport::TestCase # 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 :title => 'test title' + t1 = Ticket.create :subject => 'test title' assert_not_nil t1.code assert_nil t1.created_by User.current_test = 4 - t2 = Ticket.create :title => 'test title' + t2 = Ticket.create :subject => 'test title' assert_nil t2.code assert_not_nil t2.created_by end @@ -64,7 +64,7 @@ class TicketTest < ActiveSupport::TestCase # 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 :title => "test retrieving commented tickets" + 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 -- cgit v1.2.3