You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.3 KiB
55 lines
1.3 KiB
2 years ago
|
import test from "ava";
|
||
|
import {random_user} from "../../lib/testing.js";
|
||
|
import { User, Payment } from "../../lib/models.js";
|
||
|
|
||
|
|
||
|
test('test user model basics work', async (t) => {
|
||
|
let user = random_user();
|
||
|
|
||
|
try {
|
||
|
user.password_repeat = user.password;
|
||
|
|
||
|
let test1 = await User.register(user);
|
||
|
t.not(test1, undefined);
|
||
|
t.not(test1.unsubkey, undefined);
|
||
|
t.is(test1.full_name, user.full_name);
|
||
|
// save the id to delete later
|
||
|
user.id = test1.id;
|
||
|
|
||
|
let test2 = await User.first({id: test1.id});
|
||
|
t.is(test1.id, test2.id);
|
||
|
t.not(test1.full_name, undefined);
|
||
|
|
||
|
let count = await User.count({id: test2.id});
|
||
|
t.is(count, 1);
|
||
|
|
||
|
let all = await User.all({id: test1.id});
|
||
|
t.is(all.length, 1);
|
||
|
t.is(all[0].full_name, test1.full_name);
|
||
|
|
||
|
let test_name = Payment.gen_internal_id();
|
||
|
|
||
|
let res = await User.update({id: test1.id}, {full_name: test_name});
|
||
|
t.is(res, 1);
|
||
|
|
||
|
res = await User.first({full_name: test_name});
|
||
|
t.is(res.id, test2.id);
|
||
|
t.is(res.full_name, test_name);
|
||
|
|
||
|
res = await User.delete({id: test2.id});
|
||
|
t.is(res, 1);
|
||
|
|
||
|
count = await User.count({id: test2.id});
|
||
|
t.is(count, 0);
|
||
|
|
||
|
all = await User.all({id: test2.id});
|
||
|
t.is(all.length, 0);
|
||
|
|
||
|
} catch (error) {
|
||
|
console.log(error);
|
||
|
t.fail(error.message);
|
||
|
} finally {
|
||
|
await User.delete({id: user.id});
|
||
|
}
|
||
|
})
|