use v6.d.PREVIEW;
use Test;
use Ultramarine::Model::Users;
my $u = Ultramarine::Model::Users.new(accounts => { me => 'sesame' });
nok(
$u.authenticate(:user<me>,:password<bad>),
'bad password should fail',
);
nok(
$u.authenticate(:user<not-there>,:password<bad>),
'bad username should fail',
);
ok(
$u.authenticate(:user<me>,:password<sesame>),
'plaintext should work',
);
ok(
$u.authenticate(:user<me>,:password<enc:736573616d65>),
'hex-encoded should work',
);
nok(
$u.authenticate(:user<me>,:password<enc:736573616d64>),
'bad hex-encoded should fail',
);
ok(
$u.authenticate(:user<me>,:token<26719a1196d2a940705a59634eb18eab>,
:salt<c19b2d>),
'salted hash should work',
);
nok(
$u.authenticate(:user<me>,:token<26719a1196d2a940705a59634eb18eab>,
:salt<c19b2c>),
'bad salted hash should work',
);
done-testing;