summaryrefslogtreecommitdiffstats
path: root/ui/src/api_tests
diff options
context:
space:
mode:
authorDessalines <tyhou13@gmx.com>2020-04-23 14:13:22 -0400
committerDessalines <tyhou13@gmx.com>2020-04-23 14:13:22 -0400
commite5497edd5c12b1355c82b224111bf7ce5bb1fd1e (patch)
treee6db51f89bdfe423fcc970aff279a166d70c0b0d /ui/src/api_tests
parentce800f75adb651108e66d58bdc3e7755902f74ed (diff)
Adding some more API testing examples.
Diffstat (limited to 'ui/src/api_tests')
-rw-r--r--ui/src/api_tests/api.spec.ts78
1 files changed, 75 insertions, 3 deletions
diff --git a/ui/src/api_tests/api.spec.ts b/ui/src/api_tests/api.spec.ts
index f6dfb161..5db9ee64 100644
--- a/ui/src/api_tests/api.spec.ts
+++ b/ui/src/api_tests/api.spec.ts
@@ -1,13 +1,85 @@
import fetch from 'node-fetch';
+import {
+ LoginForm,
+ LoginResponse,
+ GetPostsForm,
+ GetPostsResponse,
+ CommentForm,
+ CommentResponse,
+ ListingType,
+ SortType,
+} from '../interfaces';
+
+let baseUrl = 'https://test.lemmy.ml';
+let apiUrl = `${baseUrl}/api/v1`;
+let auth: string;
+
+beforeAll(async () => {
+ console.log('Logging in as test user.');
+ let form: LoginForm = {
+ username_or_email: 'tester',
+ password: 'tester',
+ };
+
+ let res: LoginResponse = await fetch(`${apiUrl}/user/login`, {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ body: wrapper(form),
+ }).then(d => d.json());
+
+ auth = res.jwt;
+});
+
+test('Get test user posts', async () => {
+ let form: GetPostsForm = {
+ type_: ListingType[ListingType.All],
+ sort: SortType[SortType.TopAll],
+ auth,
+ };
+
+ let res: GetPostsResponse = await fetch(
+ `${apiUrl}/post/list?type_=${form.type_}&sort=${form.sort}&auth=${auth}`
+ ).then(d => d.json());
+
+ // console.debug(res);
+
+ expect(res.posts[0].id).toBe(2);
+});
+
+test('Create test comment', async () => {
+ let content = 'A jest test comment';
+ let form: CommentForm = {
+ post_id: 2,
+ content,
+ auth,
+ };
+
+ let res: CommentResponse = await fetch(`${apiUrl}/comment`, {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ body: wrapper(form),
+ }).then(d => d.json());
+
+ expect(res.comment.content).toBe(content);
+});
+
test('adds 1 + 2 to equal 3', () => {
let sum = (a: number, b: number) => a + b;
expect(sum(1, 2)).toBe(3);
});
-test('Get communism.lemmy.ml nodeinfo href', async () => {
- let url = 'https://communism.lemmy.ml/.well-known/nodeinfo';
- let href = 'https://communism.lemmy.ml/nodeinfo/2.0.json';
+test(`Get ${baseUrl} nodeinfo href`, async () => {
+ let url = `${baseUrl}/.well-known/nodeinfo`;
+ let href = `${baseUrl}/nodeinfo/2.0.json`;
let res = await fetch(url).then(d => d.json());
expect(res.links.href).toBe(href);
});
+
+function wrapper(form: any): string {
+ return JSON.stringify(form);
+}