diff options
-rw-r--r-- | cpanfile | 2 | ||||
-rw-r--r-- | xt/cli/update.t | 47 |
2 files changed, 43 insertions, 6 deletions
@@ -24,7 +24,7 @@ requires 'CPAN::Meta', 2.120921; requires 'CPAN::Meta::Requirements', 2.121; on develop => sub { - requires 'Test::More', 0.88; + requires 'Test::More', 0.90; requires 'Test::Requires'; requires 'Capture::Tiny'; requires 'File::pushd'; diff --git a/xt/cli/update.t b/xt/cli/update.t index 60617d9..8babb1d 100644 --- a/xt/cli/update.t +++ b/xt/cli/update.t @@ -2,7 +2,19 @@ use strict; use Test::More; use xt::CLI; -{ +subtest 'carton update NonExistentModule' => sub { + my $app = cli(); + + $app->dir->child("cpanfile")->spew(<<EOF); +requires 'Try::Tiny', '== 0.09'; +EOF + + $app->run("install"); + $app->run("update", "XYZ"); + like $app->stderr, qr/Could not find module XYZ/; +}; + +subtest 'carton update upgrades a dist' => sub { my $app = cli(); $app->dir->child("cpanfile")->spew(<<EOF); @@ -24,9 +36,6 @@ EOF $app->run("list"); like $app->stdout, qr/Try-Tiny-0\.09/; - $app->run("update", "XYZ"); - like $app->stderr, qr/Could not find module XYZ/; - $app->run("update", "Try::Tiny"); like $app->stderr, qr/installed Try-Tiny-0\.12.*upgraded from 0\.09/; @@ -35,7 +44,35 @@ EOF $app->run("list"); like $app->stdout, qr/Try-Tiny-0\.12/; -} +}; + +subtest 'downgrade a distribution' => sub { + my $app = cli(); + + $app->dir->child("cpanfile")->spew(<<EOF); +requires 'Try::Tiny', '0.12'; +EOF + $app->run("install"); + $app->run("list"); + like $app->stdout, qr/Try-Tiny-0\.12/; + + $app->dir->child("cpanfile")->spew(<<EOF); +requires 'Try::Tiny', '== 0.09'; +EOF + $app->run("update"); + $app->run("list"); + like $app->stdout, qr/Try-Tiny-0\.09/; + + TODO: { + local $TODO = 'collecting wrong install info'; + $app->dir->child("cpanfile")->spew(<<EOF); +requires 'Try::Tiny', '0.09'; +EOF + $app->run("install"); + $app->run("list"); + like $app->stdout, qr/Try-Tiny-0\.09/; + } +}; done_testing; |