shlist

share and manage lists between multiple people
Log | Files | Refs

list_update.t (1414B)


      1 use strict;
      2 use Test;
      3 use SL::Test;
      4 
      5 BEGIN { plan tests => 21 }
      6 
      7 my $s = SL::Test::Server->new();
      8 my $A = SL::Test::Client->new();
      9 
     10 # Test sending a request with no 'num' key
     11 my $err = $A->list_update({ name => 'some name' }, 'err');
     12 ok( $err, 'the client did not send a list number' );
     13 ok( $s->readline(), "/list number key not found/" );
     14 
     15 # Try and update a list that doesn't exist
     16 $err = $A->list_update({ num => 123456, name => 'some name' }, 'err');
     17 ok( $err, 'the client sent an unknown list number' );
     18 ok( $s->readline(), "/unknown list number '.*'/" );
     19 
     20 # All checks after this require a valid list, create one now
     21 my $list = $A->list_add({ name => 'this is a new list', date => 0 });
     22 
     23 # Update only the list name first
     24 $A->list_update({ num => $list->{num}, name => 'this is an updated name' });
     25 
     26 # Verify the name change persisted
     27 my @lists = @{ $A->lists_get() };
     28 ok( $lists[0]->{name},  'this is an updated name' ) ;
     29 ok( $lists[0]->{date}, 0 );
     30 
     31 # Update only the date
     32 $A->list_update({ num => $list->{num}, date => 12345 });
     33 
     34 # Verify the date change persisted
     35 @lists = @{ $A->lists_get() };
     36 ok( $lists[0]->{name}, 'this is an updated name' );
     37 ok( $lists[0]->{date}, 12345 );
     38 
     39 # Now update both the name and date
     40 $A->list_update({ num => $list->{num}, date => 54321, name => 'updated again' });
     41 
     42 @lists = @{ $A->lists_get() };
     43 ok( $lists[0]->{name}, 'updated again' );
     44 ok( $lists[0]->{date}, 54321 );