App-Phoebe
view release on metacpan or search on metacpan
t/Ijirait.t view on Meta::CPAN
# Copyright (C) 2021 Alex Schroeder <alex@gnu.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
use Modern::Perl;
use Test::More;
use List::Util qw(any);
use File::Slurper qw(read_binary);
use Mojo::JSON qw(decode_json);
use utf8; # tests contain UTF-8
our @use = qw(Ijirait);
our $base;
our $port;
our $dir;
require './t/test.pl';
my $page = query_gemini("$base/play/ijirait");
like($page, qr(^20), "Ijirait");
like($page, qr(Ijiraq said âWelcome!â), "Welcome");
$page = query_gemini("$base/play/ijirait/examine?Ijiraq");
like($page, qr(^# Ijiraq)m, "Heading");
like($page, qr(^A shape-shifter with red eyes\.)m, "Description");
like(query_gemini("$base/play/ijirait/type?say Hello"),
qr(said âHelloâ), "Hello");
like(query_gemini("$base/play/ijirait/go?out"),
qr(^30), "Redirect after a move");
like(query_gemini("$base/play/ijirait/look"),
qr(^# Outside The Tent)m, "Outside");
like(query_gemini("$base/play/ijirait/go?tent"),
qr(^30), "Redirect after a move");
like(query_gemini("$base/play/ijirait/look"),
qr(^# The Tent)m, "Back inside");
like(query_gemini("$base/play/ijirait/name?me%20Alex"),
qr(^30)m, "Redirect after name");
like(query_gemini("$base/play/ijirait/look"),
qr(Alex \(you\))m, "Renamed");
# use the type command for a change
like(query_gemini("$base/play/ijirait/type?describe%20me%20I%E2%80%99m%20cool%2E"),
qr(^30)m, "Redirect after describe");
$page = query_gemini("$base/play/ijirait/examine?Alex");
like($page, qr(^# Alex$)m, "Name");
like($page, qr(^Iâm cool\.)m, "Description");
like(query_gemini("$base/play/ijirait/name?room%20Computer"),
qr(^30)m, "Redirect after name");
like(query_gemini("$base/play/ijirait/look"),
qr(^# Computer)m, "Renamed");
like(query_gemini("$base/play/ijirait/describe?room%20Rows%20and%20rows%20of%20transistors."),
qr(^30)m, "Redirect after describe");
like(query_gemini("$base/play/ijirait/look"),
qr(^Rows and rows of transistors\.)m, "Described");
like(query_gemini("$base/play/ijirait/create?room"),
qr(^30)m, "Redirect after room creation");
like(query_gemini("$base/play/ijirait/look"),
qr(A tunnel \(tunnel\))m, "Tunnel");
like(query_gemini("$base/play/ijirait/name?tunnel%20A%20hole%20in%20the%20ground%20%28hole%29"),
qr(^30)m, "Redirect after name");
like(query_gemini("$base/play/ijirait/look"),
qr(A hole in the ground \(hole\))m, "Hole");
like(query_gemini("$base/play/ijirait/go?hole"),
qr(^30), "Redirect after a move");
$page = query_gemini("$base/play/ijirait/look");
like($page, qr(^# Lost in fog)m, "New room name");
like($page, qr(^Dense fog surrounds you\.)m, "New room description");
$page = query_gemini("$base/play/ijirait/rooms");
( run in 4.950 seconds using v1.01-cache-2.11-cpan-d80b1682f3f )