summary refs log tree commit diff stats
path: root/svc/post_test.go
blob: 99c174a5fd9f1de50cb26b1cf438d184c45d817d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
package svc // import "github.com/getwtxt/getwtxt/svc"

import (
	"fmt"
	"net/http"
	"net/http/httptest"
	"net/url"
	"strings"
	"testing"

	"github.com/getwtxt/registry"
)

var apiPostUserCases = []struct {
	name    string
	nick    string
	uri     string
	wantErr bool
}{
	{
		name:    "Known Good User",
		nick:    "gbmor",
		uri:     "https://gbmor.dev/twtxt.txt",
		wantErr: false,
	},
	{
		name:    "Missing URI",
		nick:    "missinguri",
		uri:     "",
		wantErr: true,
	},
	{
		name:    "Missing Nickname",
		nick:    "",
		uri:     "https://example.com/twtxt.txt",
		wantErr: true,
	},
	{
		name:    "Missing URI and Nickname",
		nick:    "",
		uri:     "",
		wantErr: true,
	},
}

func Test_apiPostUser(t *testing.T) {
	initTestConf()
	portnum := fmt.Sprintf(":%v", confObj.Port)
	twtxtCache = registry.NewIndex()

	for _, tt := range apiPostUserCases {
		t.Run(tt.name, func(t *testing.T) {
			params := url.Values{}
			params.Set("url", tt.uri)
			params.Set("nickname", tt.nick)

			req, err := http.NewRequest("POST", "https://localhost"+portnum+"/api/plain/users", strings.NewReader(params.Encode()))
			if err != nil {
				t.Errorf("%v\n", err)
			}

			req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
			rr := httptest.NewRecorder()
			apiEndpointPOSTHandler(rr, req)

			if !tt.wantErr {
				if rr.Code != http.StatusOK {
					t.Errorf("Received unexpected non-200 response: %v\n", rr.Code)
				}
			} else {
				if rr.Code != http.StatusBadRequest {
					t.Errorf("Expected 400 Bad Request, but received: %v\n", rr.Code)
				}
			}
		})
	}
}
ess)) <- ((new)) ((space literal)) ((30 literal))) run: init-channel/main 0: 1000 => ((default-space space-address)) run: init-channel/main 1: (((1 channel-address)) <- ((new)) ((channel literal))) run: init-channel/main 1: 1031 => ((1 channel-address)) mem: ((1 channel-address)): 1002 <= 1031 run: init-channel/main 2: (((2 integer-address)) <- ((get-address)) ((1 channel-address) (deref)) ((0 offset))) run: init-channel/main 2: 1031 => ((2 integer-address)) mem: ((2 integer-address)): 1003 <= 1031 run: init-channel/main 3: (((2 integer-address) (deref)) <- ((copy)) ((0 literal))) run: init-channel/main 3: 0 => ((2 integer-address) (deref)) mem: ((2 integer-address) (deref)): 1031 <= 0 run: init-channel/main 4: (((3 integer-address)) <- ((get-address)) ((1 channel-address) (deref)) ((1 offset))) run: init-channel/main 4: 1032 => ((3 integer-address)) mem: ((3 integer-address)): 1004 <= 1032 run: init-channel/main 5: (((3 integer-address) (deref)) <- ((copy)) ((0 literal))) run: init-channel/main 5: 0 => ((3 integer-address) (deref)) mem: ((3 integer-address) (deref)): 1032 <= 0 run: init-channel/main 6: (((4 integer)) <- ((next-input))) arg: nil 0 (3) run: init-channel/main 6: 3 => ((4 integer)) mem: ((4 integer)): 1005 <= 3 run: init-channel/main 7: (((4 integer)) <- ((add)) ((4 integer)) ((1 literal))) mem: ((4 integer)) => 3 run: init-channel/main 7: 4 => ((4 integer)) mem: ((4 integer)): 1005 <= 4 run: init-channel/main 8: (((5 tagged-value-array-address-address)) <- ((get-address)) ((1 channel-address) (deref)) ((2 offset))) run: init-channel/main 8: 1033 => ((5 tagged-value-array-address-address)) mem: ((5 tagged-value-array-address-address)): 1006 <= 1033 run: init-channel/main 9: (((5 tagged-value-array-address-address) (deref)) <- ((new)) ((tagged-value-array literal)) ((4 integer))) mem: ((4 integer)) => 4 run: init-channel/main 9: 1034 => ((5 tagged-value-array-address-address) (deref)) mem: ((5 tagged-value-array-address-address) (deref)): 1033 <= 1034 run: init-channel/main 10: (((reply)) ((1 channel-address))) mem: ((1 channel-address)) => 1031 run: main 0: 1031 => ((1 channel-address)) mem: ((1 channel-address)): 1 <= 1031 run: main 1: (((2 integer)) <- ((copy)) ((34 literal))) run: main 1: 34 => ((2 integer)) mem: ((2 integer)): 2 <= 34 run: main 2: (((3 tagged-value)) <- ((save-type)) ((2 integer))) mem: ((2 integer)) => 34 run: main 2: #(tagged record (integer 34)) => ((3 tagged-value)) mem: ((3 tagged-value)): 3 <= integer mem: ((3 tagged-value)): 4 <= 34 run: main 3: (((1 channel-address) (deref)) <- ((write)) ((1 channel-address)) ((3 tagged-value))) mem: ((1 channel-address)) => 1031 mem: ((3 tagged-value)) => #(tagged record (integer 34 . nil)) run: write/main 0: (((default-space space-address)) <- ((new)) ((space literal)) ((30 literal))) run: write/main 0: 1043 => ((default-space space-address)) run: write/main 1: (((1 channel-address)) <- ((next-input))) arg: nil 0 (1031 #(tagged record (integer 34 . nil))) run: write/main 1: 1031 => ((1 channel-address)) mem: ((1 channel-address)): 1045 <= 1031 run: write/main 2: (((2 tagged-value)) <- ((next-input))) arg: nil 1 (1031 #(tagged record (integer 34 . nil))) run: write/main 2: #(tagged record (integer 34 . nil)) => ((2 tagged-value)) mem: ((2 tagged-value)): 1046 <= integer mem: ((2 tagged-value)): 1047 <= 34 run: write/main 3: (((4 boolean)) <- ((full?)) ((1 channel-address) (deref))) mem: ((1 channel-address) (deref)) => #(tagged record (0 0 1034 . nil)) run: full?/write/main 0: (((default-space space-address)) <- ((new)) ((space literal)) ((30 literal))) run: full?/write/main 0: 1074 => ((default-space space-address)) run: full?/write/main 1: (((1 channel)) <- ((next-input))) arg: nil 0 (#(tagged record (0 0 1034 . nil))) run: full?/write/main 1: #(tagged record (0 0 1034 . nil)) => ((1 channel)) mem: ((1 channel)): 1076 <= 0 mem: ((1 channel)): 1077 <= 0 mem: ((1 channel)): 1078 <= 1034 run: full?/write/main 2: (((4 integer)) <- ((get)) ((1 channel)) ((1 offset))) mem: ((1077 integer) (raw)) => 0 run: full?/write/main 2: 0 => ((4 integer)) mem: ((4 integer)): 1079 <= 0 run: full?/write/main 3: (((4 integer)) <- ((add)) ((4 integer)) ((1 literal))) mem: ((4 integer)) => 0 run: full?/write/main 3: 1 => ((4 integer)) mem: ((4 integer)): 1079 <= 1 run: full?/write/main 4: (((5 integer)) <- ((capacity)) ((1 channel))) mem: ((1 channel)) => #(tagged record (0 0 1034 . nil)) run: capacity/full?/write/main 0: (((default-space space-address)) <- ((new)) ((space literal)) ((30 literal))) run: capacity/full?/write/main 0: 1105 => ((default-space space-address)) run: capacity/full?/write/main 1: (((1 channel)) <- ((next-input))) arg: nil 0 (#(tagged record (0 0 1034 . nil))) run: capacity/full?/write/main 1: #(tagged record (0 0 1034 . nil)) => ((1 channel)) mem: ((1 channel)): 1107 <= 0 mem: ((1 channel)): 1108 <= 0 mem: ((1 channel)): 1109 <= 1034 run: capacity/full?/write/main 2: (((4 tagged-value-array-address)) <- ((get)) ((1 channel)) ((2 offset))) mem: ((1109 tagged-value-array-address) (raw)) => 1034 run: capacity/full?/write/main 2: 1034 => ((4 tagged-value-array-address)) mem: ((4 tagged-value-array-address)): 1110 <= 1034 run: capacity/full?/write/main 3: (((5 integer)) <- ((length)) ((4 tagged-value-array-address) (deref))) array-len: ((4 tagged-value-array-address) (deref)) mem: ((1034 integer) (raw)) => 4 run: capacity/full?/write/main 3: 4 => ((5 integer)) mem: ((5 integer)): 1111 <= 4 run: capacity/full?/write/main 4: (((reply)) ((5 integer))) mem: ((5 integer)) => 4 run: full?/write/main 4: 4 => ((5 integer)) mem: ((5 integer)): 1080 <= 4 run: full?/write/main 5: (((6 boolean)) <- ((less-than)) ((4 integer)) ((5 integer))) mem: ((4 integer)) => 1 mem: ((5 integer)) => 4 run: full?/write/main 5: t => ((6 boolean)) mem: ((6 boolean)): 1081 <= t run: full?/write/main 6: (((jump-if)) ((6 boolean)) ((1 offset))) mem: ((6 boolean)) => t run: full?/write/main 8: (((7 integer)) <- ((get)) ((1 channel)) ((0 offset))) mem: ((1076 integer) (raw)) => 0 run: full?/write/main 8: 0 => ((7 integer)) mem: ((7 integer)): 1082 <= 0 run: full?/write/main 9: (((8 boolean)) <- ((equal)) ((7 integer)) ((4 integer))) mem: ((7 integer)) => 0 mem: ((4 integer)) => 1 run: full?/write/main 9: nil => ((8 boolean)) mem: ((8 boolean)): 1083 <= nil run: full?/write/main 10: (((reply)) ((8 boolean))) mem: ((8 boolean)) => nil run: write/main 3: nil => ((4 boolean)) mem: ((4 boolean)): 1048 <= nil run: write/main 4: (((jump-unless)) ((4 boolean)) ((2 offset))) mem: ((4 boolean)) => nil run: write/main 7: (((6 tagged-value-array-address)) <- ((get)) ((1 channel-address) (deref)) ((2 offset))) mem: ((1033 tagged-value-array-address) (raw)) => 1034 run: write/main 7: 1034 => ((6 tagged-value-array-address)) mem: ((6 tagged-value-array-address)): 1050 <= 1034 run: write/main 8: (((7 integer-address)) <- ((get-address)) ((1 channel-address) (deref)) ((1 offset))) run: write/main 8: 1032 => ((7 integer-address)) mem: ((7 integer-address)): 1051 <= 1032 run: write/main 9: (((8 tagged-value-address)) <- ((index-address)) ((6 tagged-value-array-address) (deref)) ((7 integer-address) (deref))) mem: ((7 integer-address) (deref)) => 0 array-len: ((1034 tagged-value-array) (raw)) mem: ((1034 integer) (raw)) => 4 run: write/main 9: 1035 => ((8 tagged-value-address)) mem: ((8 tagged-value-address)): 1052 <= 1035 run: write/main 10: (((8 tagged-value-address) (deref)) <- ((copy)) ((2 tagged-value))) mem: ((2 tagged-value)) => #(tagged record (integer 34 . nil)) run: write/main 10: #(tagged record (integer 34 . nil)) => ((8 tagged-value-address) (deref)) mem: ((8 tagged-value-address) (deref)): 1035 <= integer mem: ((8 tagged-value-address) (deref)): 1036 <= 34 run: write/main 11: (((7 integer-address) (deref)) <- ((add)) ((7 integer-address) (deref)) ((1 literal))) mem: ((7 integer-address) (deref)) => 0 run: write/main 11: 1 => ((7 integer-address) (deref)) mem: ((7 integer-address) (deref)): 1032 <= 1 run: write/main 12: (((9 integer)) <- ((length)) ((6 tagged-value-array-address) (deref))) array-len: ((6 tagged-value-array-address) (deref)) mem: ((1034 integer) (raw)) => 4 run: write/main 12: 4 => ((9 integer)) mem: ((9 integer)): 1053 <= 4 run: write/main 13: (((10 boolean)) <- ((less-than)) ((7 integer-address) (deref)) ((9 integer))) mem: ((7 integer-address) (deref)) => 1 mem: ((9 integer)) => 4 run: write/main 13: t => ((10 boolean)) mem: ((10 boolean)): 1054 <= t run: write/main 14: (((jump-if)) ((10 boolean)) ((1 offset))) mem: ((10 boolean)) => t run: write/main 16: (((reply)) ((1 channel-address) (deref) (same-as-arg 0))) mem: ((1 channel-address) (deref) (same-as-arg 0)) => #(tagged record (0 1 1034 . nil)) run: main 3: #(tagged record (0 1 1034 . nil)) => ((1 channel-address) (deref)) mem: ((1 channel-address) (deref)): 1031 <= 0 mem: ((1 channel-address) (deref)): 1032 <= 1 mem: ((1 channel-address) (deref)): 1033 <= 1034 run: main 4: (((5 boolean)) <- ((empty?)) ((1 channel-address) (deref))) mem: ((1 channel-address) (deref)) => #(tagged record (0 1 1034 . nil)) run: empty?/main 0: (((default-space space-address)) <- ((new)) ((space literal)) ((30 literal))) run: empty?/main 0: 1136 => ((default-space space-address)) run: empty?/main 1: (((1 channel)) <- ((next-input))) arg: nil 0 (#(tagged record (0 1 1034 . nil))) run: empty?/main 1: #(tagged record (0 1 1034 . nil)) => ((1 channel)) mem: ((1 channel)): 1138 <= 0 mem: ((1 channel)): 1139 <= 1 mem: ((1 channel)): 1140 <= 1034 run: empty?/main 2: (((4 integer)) <- ((get)) ((1 channel)) ((0 offset))) mem: ((1138 integer) (raw)) => 0 run: empty?/main 2: 0 => ((4 integer)) mem: ((4 integer)): 1141 <= 0 run: empty?/main 3: (((5 integer)) <- ((get)) ((1 channel)) ((1 offset))) mem: ((1139 integer) (raw)) => 1 run: empty?/main 3: 1 => ((5 integer)) mem: ((5 integer)): 1142 <= 1 run: empty?/main 4: (((6 boolean)) <- ((equal)) ((4 integer)) ((5 integer))) mem: ((4 integer)) => 0 mem: ((5 integer)) => 1 run: empty?/main 4: nil => ((6 boolean)) mem: ((6 boolean)): 1143 <= nil run: empty?/main 5: (((reply)) ((6 boolean))) mem: ((6 boolean)) => nil run: main 4: nil => ((5 boolean)) mem: ((5 boolean)): 5 <= nil run: main 5: (((6 boolean)) <- ((full?)) ((1 channel-address) (deref))) mem: ((1 channel-address) (deref)) => #(tagged record (0 1 1034 . nil)) run: full?/main 0: (((default-space space-address)) <- ((new)) ((space literal)) ((30 literal))) run: full?/main 0: 1167 => ((default-space space-address)) run: full?/main 1: (((1 channel)) <- ((next-input))) arg: nil 0 (#(tagged record (0 1 1034 . nil))) run: full?/main 1: #(tagged record (0 1 1034 . nil)) => ((1 channel)) mem: ((1 channel)): 1169 <= 0 mem: ((1 channel)): 1170 <= 1 mem: ((1 channel)): 1171 <= 1034 run: full?/main 2: (((4 integer)) <- ((get)) ((1 channel)) ((1 offset))) mem: ((1170 integer) (raw)) => 1 run: full?/main 2: 1 => ((4 integer)) mem: ((4 integer)): 1172 <= 1 run: full?/main 3: (((4 integer)) <- ((add)) ((4 integer)) ((1 literal))) mem: ((4 integer)) => 1 run: full?/main 3: 2 => ((4 integer)) mem: ((4 integer)): 1172 <= 2 run: full?/main 4: (((5 integer)) <- ((capacity)) ((1 channel))) mem: ((1 channel)) => #(tagged record (0 1 1034 . nil)) run: capacity/full?/main 0: (((default-space space-address)) <- ((new)) ((space literal)) ((30 literal))) run: capacity/full?/main 0: 1198 => ((default-space space-address)) run: capacity/full?/main 1: (((1 channel)) <- ((next-input))) arg: nil 0 (#(tagged record (0 1 1034 . nil))) run: capacity/full?/main 1: #(tagged record (0 1 1034 . nil)) => ((1 channel)) mem: ((1 channel)): 1200 <= 0 mem: ((1 channel)): 1201 <= 1 mem: ((1 channel)): 1202 <= 1034 run: capacity/full?/main 2: (((4 tagged-value-array-address)) <- ((get)) ((1 channel)) ((2 offset))) mem: ((1202 tagged-value-array-address) (raw)) => 1034 run: capacity/full?/main 2: 1034 => ((4 tagged-value-array-address)) mem: ((4 tagged-value-array-address)): 1203 <= 1034 run: capacity/full?/main 3: (((5 integer)) <- ((length)) ((4 tagged-value-array-address) (deref))) array-len: ((4 tagged-value-array-address) (deref)) mem: ((1034 integer) (raw)) => 4 run: capacity/full?/main 3: 4 => ((5 integer)) mem: ((5 integer)): 1204 <= 4 run: capacity/full?/main 4: (((reply)) ((5 integer))) mem: ((5 integer)) => 4 run: full?/main 4: 4 => ((5 integer)) mem: ((5 integer)): 1173 <= 4 run: full?/main 5: (((6 boolean)) <- ((less-than)) ((4 integer)) ((5 integer))) mem: ((4 integer)) => 2 mem: ((5 integer)) => 4 run: full?/main 5: t => ((6 boolean)) mem: ((6 boolean)): 1174 <= t run: full?/main 6: (((jump-if)) ((6 boolean)) ((1 offset))) mem: ((6 boolean)) => t run: full?/main 8: (((7 integer)) <- ((get)) ((1 channel)) ((0 offset))) mem: ((1169 integer) (raw)) => 0 run: full?/main 8: 0 => ((7 integer)) mem: ((7 integer)): 1175 <= 0 run: full?/main 9: (((8 boolean)) <- ((equal)) ((7 integer)) ((4 integer))) mem: ((7 integer)) => 0 mem: ((4 integer)) => 2 run: full?/main 9: nil => ((8 boolean)) mem: ((8 boolean)): 1176 <= nil run: full?/main 10: (((reply)) ((8 boolean))) mem: ((8 boolean)) => nil run: main 5: nil => ((6 boolean)) mem: ((6 boolean)): 6 <= nil schedule: done with routine nil