From 2ce2d6b846d4495c4cc797c2798377684f6189fc Mon Sep 17 00:00:00 2001 From: Manager Bot Date: Mon, 28 Nov 2022 21:28:48 +0000 Subject: [PATCH] More tests, also fixes. --- Web/lib/MJB/Web/Controller/Dashboard.pm | 12 ++--- .../04_dashboard/11_blog_settings.t | 45 +++++++++++++++++++ Web/templates/dashboard/blog_settings.html.ep | 6 +-- 3 files changed, 54 insertions(+), 9 deletions(-) create mode 100644 Web/t/01_endpoints/04_dashboard/11_blog_settings.t diff --git a/Web/lib/MJB/Web/Controller/Dashboard.pm b/Web/lib/MJB/Web/Controller/Dashboard.pm index 843e8e2..102725a 100644 --- a/Web/lib/MJB/Web/Controller/Dashboard.pm +++ b/Web/lib/MJB/Web/Controller/Dashboard.pm @@ -201,9 +201,9 @@ sub blog_settings ($c) { my $data = $c->jekyll($blog->domain->name)->config->data; - $c->stash->{form_title} = $data->{title}; - $c->stash->{form_desc} = $data->{description}; - $c->stash->{form_email} = $data->{email}; + $c->stash->{form}->{title} = $data->{title}; + $c->stash->{form}->{desc} = $data->{description}; + $c->stash->{form}->{email} = $data->{email}; } #== @@ -219,9 +219,9 @@ sub do_blog_settings ($c) { my $jekyll = $c->jekyll($blog->domain->name); - my $title = $c->stash->{form_title} = $c->param( 'configTitle' ); - my $desc = $c->stash->{form_desc} = $c->param( 'configDesc' ); - my $email = $c->stash->{form_email} = $c->param( 'configEmail' ); + my $title = $c->stash->{form}->{title} = $c->param( 'configTitle' ); + my $desc = $c->stash->{form}->{desc} = $c->param( 'configDesc' ); + my $email = $c->stash->{form}->{email} = $c->param( 'configEmail' ); $jekyll->config->data->{title} = $title; $jekyll->config->data->{description} = $desc; diff --git a/Web/t/01_endpoints/04_dashboard/11_blog_settings.t b/Web/t/01_endpoints/04_dashboard/11_blog_settings.t new file mode 100644 index 0000000..5445b8a --- /dev/null +++ b/Web/t/01_endpoints/04_dashboard/11_blog_settings.t @@ -0,0 +1,45 @@ +#!/usr/bin/env perl +use MJB::Web::Test; + +#== +# This test ensures that the settings panel for the blog can be viewed. +# +# 1. Create user and login. +# 2. Make a new blog. +# 3. Go to the settings panel +# 4. Confirm the stash values. +#== + +my $t = Test::Mojo::MJB->new('MJB::Web'); + +my $blog_id = $t->create_user + ->post_ok( '/blog/domain', form => { + domain => 'blog.example.com', + calling_route => 'show_blog_domain_owned', + }) + ->get_ok( '/dashboard' ) + ->stash->{blogs}->[0]->id; + +$t->get_ok( "/dashboard/blog/$blog_id" ) + ->status_is( 200 ) + ->code_block( sub { + my $self = shift; + ok exists $self->stash->{blog}, "The blog loads!"; + is $self->stash->{blog}->domain->name, 'blog.example.com', "Correct domain name for id."; + }); + +$t->get_ok( "/dashboard/blog/$blog_id/settings" ) + ->code_block(sub { + my $self = shift; + ok exists $self->stash->{form}->{title}, 'There is a title'; + ok exists $self->stash->{form}->{desc}, 'There is a description'; + ok exists $self->stash->{form}->{email}, 'There is an email'; + }) + ->status_is( 200 ); + +#== +# Remove Jekyll blog repos that were created as a part of this test. +#== +$t->clear_tempdir; + +done_testing; diff --git a/Web/templates/dashboard/blog_settings.html.ep b/Web/templates/dashboard/blog_settings.html.ep index ae808f4..ac161a1 100644 --- a/Web/templates/dashboard/blog_settings.html.ep +++ b/Web/templates/dashboard/blog_settings.html.ep @@ -7,17 +7,17 @@
- +
- +
- +