This is a parody of leetcode.com for designers. It's being developed live on Twitch.tv/zedashaw to demonstrate how to make a parody of a website.
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.
pixelperfectionist/tests/models/user.js

55 lines
1.3 KiB

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});
}
})