From 971b14aa8a6975d747dfab1a14d2b41091ada620 Mon Sep 17 00:00:00 2001 From: swag Date: Wed, 5 Oct 2022 22:46:15 -0400 Subject: [PATCH] Simplify the tests --- README.md | 1 - t/list.t | 12 --------- t/post.t | 75 ------------------------------------------------------ t/remark.t | 36 +++++++++++++++++++++++++- t/thread.t | 54 +++++++++++++++++++++++++++++++++++++-- 5 files changed, 87 insertions(+), 91 deletions(-) delete mode 100644 t/list.t delete mode 100644 t/post.t diff --git a/README.md b/README.md index 227aeb2..c713103 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,6 @@ Run the tests locally (against development environment): 1. Bump button/counter 1. Some sort of admin/moderator login and view 1. CSS -1. Subtests for funsies ## Crazy future ideas diff --git a/t/list.t b/t/list.t deleted file mode 100644 index 6f70183..0000000 --- a/t/list.t +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/env perl - -use Mojo::Base -strict; -use Test::More; -use Test::Mojo; - -my $t = Test::Mojo->new('PostText'); - -$t->get_ok('/list' )->status_is(200)->text_like(h2 => qr/Threads List/); -$t->get_ok('/list/1')->status_is(200)->text_like(h2 => qr/Threads List/); - -done_testing(); diff --git a/t/post.t b/t/post.t deleted file mode 100644 index ff36eda..0000000 --- a/t/post.t +++ /dev/null @@ -1,75 +0,0 @@ -#!/usr/bin/env perl - -use Mojo::Base -strict; -use Test::More; -use Test::Mojo; - -my $t = Test::Mojo->new('PostText'); - -my %valid_params = ( - author => 'Anonymous', - title => 'hi', - body => 'ayy... lmao' - ); -my %invalid_title = ( - author => 'Anonymous', - title => '', - body => 'ayy... lmao' - ); -my %invalid_post = ( - author => 'Anonymous', - title => 'hi', - body => 'a' - ); -my %valid_remark = ( - author => 'Anonymous', - body => 'hi' - ); -my %invalid_remark = ( - author => 'Anonymous', - body => 'a' - ); - -$t->ua->max_redirects(1); - -# GET -$t->get_ok('/post')->status_is(200) - ->element_exists('form input[name="author"]' ) - ->element_exists('form input[name="title"]' ) - ->element_exists('form textarea[name="body"]') - ->element_exists('form input[type="submit"]' ) - ->text_like(h2 => qr/New Thread/); - -$t->get_ok('/post/1')->status_is(200) - ->element_exists('form input[name="author"]' ) - ->element_exists('form textarea[name="body"]') - ->element_exists('form input[type="submit"]' ) - ->text_like(h2 => qr/New Remark/); - -# POST -$t->post_ok('/post')->status_is(200) - ->element_exists('form input[name="author"]' ) - ->element_exists('form input[name="title"]' ) - ->element_exists('form textarea[name="body"]') - ->element_exists('form input[type="submit"]' ) - ->text_like(h2 => qr/New Thread/); - -$t->post_ok('/post', form => \%invalid_title)->status_is(400) - ->text_like(p => qr/Invalid title/); -$t->post_ok('/post', form => \%invalid_post)->status_is(400) - ->text_like(p => qr/Invalid text/); -$t->post_ok('/post', form => \%valid_params)->status_is(200) - ->text_like(h2 => qr/Thread #[0-9]+/); - -$t->post_ok('/post/1')->status_is(200) - ->element_exists('form input[name="author"]' ) - ->element_exists('form textarea[name="body"]') - ->element_exists('form input[type="submit"]' ) - ->text_like(h2 => qr/New Remark/); - -$t->post_ok('/post/1', form => \%valid_remark)->status_is(200) - ->text_like(h2 => qr/Thread #1/); -$t->post_ok('/post/1', form => \%invalid_remark)->status_is(400) - ->text_like(p => qr/Invalid text/); - -done_testing(); diff --git a/t/remark.t b/t/remark.t index 4d27a0b..43ff3c7 100644 --- a/t/remark.t +++ b/t/remark.t @@ -6,6 +6,40 @@ use Test::Mojo; my $t = Test::Mojo->new('PostText'); -$t->get_ok('/remark/1')->status_is(200)->text_like(h2 => qr/Remark #1/); +my %valid_remark = ( + author => 'Anonymous', + body => 'hi' + ); +my %invalid_remark = ( + author => 'Anonymous', + body => 'a' + ); + +subtest 'View single remark', sub { + $t->get_ok('/remark/1')->status_is(200)->text_like(h2 => qr/Remark #1/); +}; + +$t->ua->max_redirects(1); + +subtest 'Post new remark', sub { + # GET + $t->get_ok('/post/1')->status_is(200) + ->element_exists('form input[name="author"]' ) + ->element_exists('form textarea[name="body"]') + ->element_exists('form input[type="submit"]' ) + ->text_like(h2 => qr/New Remark/); + + # POST + $t->post_ok('/post/1')->status_is(200) + ->element_exists('form input[name="author"]' ) + ->element_exists('form textarea[name="body"]') + ->element_exists('form input[type="submit"]' ) + ->text_like(h2 => qr/New Remark/); + + $t->post_ok('/post/1', form => \%valid_remark)->status_is(200) + ->text_like(h2 => qr/Thread #1/); + $t->post_ok('/post/1', form => \%invalid_remark)->status_is(400) + ->text_like(p => qr/Invalid text/); +}; done_testing(); diff --git a/t/thread.t b/t/thread.t index 5897ce2..1dfd845 100644 --- a/t/thread.t +++ b/t/thread.t @@ -6,7 +6,57 @@ use Test::Mojo; my $t = Test::Mojo->new('PostText'); -$t->get_ok('/thread/1' )->status_is(200)->text_like(h2 => qr/Thread #1/); -$t->get_ok('/thread/1/1')->status_is(200)->text_like(h2 => qr/Thread #1/); +my %valid_params = ( + author => 'Anonymous', + title => 'hi', + body => 'ayy... lmao' + ); +my %invalid_title = ( + author => 'Anonymous', + title => '', + body => 'ayy... lmao' + ); +my %invalid_post = ( + author => 'Anonymous', + title => 'hi', + body => 'a' + ); + +subtest 'List threads by page', sub { + $t->get_ok('/list' )->status_is(200)->text_like(h2 => qr/Threads List/); + $t->get_ok('/list/1')->status_is(200)->text_like(h2 => qr/Threads List/); +}; + +subtest 'View single thread', sub { + $t->get_ok('/thread/1' )->status_is(200)->text_like(h2 => qr/Thread #1/); + $t->get_ok('/thread/1/1')->status_is(200)->text_like(h2 => qr/Thread #1/); +}; + +$t->ua->max_redirects(1); + +subtest 'Post new thread', sub { + # GET + $t->get_ok('/post')->status_is(200) + ->element_exists('form input[name="author"]' ) + ->element_exists('form input[name="title"]' ) + ->element_exists('form textarea[name="body"]') + ->element_exists('form input[type="submit"]' ) + ->text_like(h2 => qr/New Thread/); + + # POST + $t->post_ok('/post')->status_is(200) + ->element_exists('form input[name="author"]' ) + ->element_exists('form input[name="title"]' ) + ->element_exists('form textarea[name="body"]') + ->element_exists('form input[type="submit"]' ) + ->text_like(h2 => qr/New Thread/); + + $t->post_ok('/post', form => \%invalid_title)->status_is(400) + ->text_like(p => qr/Invalid title/); + $t->post_ok('/post', form => \%invalid_post)->status_is(400) + ->text_like(p => qr/Invalid text/); + $t->post_ok('/post', form => \%valid_params)->status_is(200) + ->text_like(h2 => qr/Thread #[0-9]+/); +}; done_testing();