This repository was archived by the owner on Nov 2, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathretriever_test.go
58 lines (50 loc) · 33.6 KB
/
retriever_test.go
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
package sysl_proxy
import (
"github.com/joshcarp/gop/gop/retriever/retriever_github"
"github.com/stretchr/testify/require"
"net/http/httptest"
"testing"
)
func TestGithubMock(t *testing.T) {
mock := retriever_github.NewMockFromMap(GithubRequestPaths)
h := httptest.NewServer(&mock)
retriever := retriever_github.New(nil)
retriever.Client = h.Client()
retriever.ApiBase = h.URL
syslproxy := NewProcessor(retriever)
defer h.Close()
for resource, contents := range Tests {
t.Run(resource, func(t *testing.T) {
res, cached, err := syslproxy.Retrieve(resource)
require.NoError(t, err)
require.False(t, cached)
require.Equal(t, contents, string(res))
})
}
}
var Tests = map[string]string{
"github.com/joshcarp/sysl-1/sysl-1.sysl@911c664b22f5b8dedb7f1f0554ae3ea77085eaac": `{"apps":{"App":{"name":{"part":["App"]}, "attrs":{"package":{"s":"App"}}, "endpoints":{"GET /address":{"name":"GET /address", "attrs":{"patterns":{"a":{"elt":[{"s":"rest"}]}}}, "param":[{"name":"ok", "type":{"typeRef":{"ref":{"path":["foo"]}}}}], "stmt":[{"ret":{"payload":"ok <: sequence of App.foo"}}], "restParams":{"method":"GET", "path":"/address"}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@911c664b22f5b8dedb7f1f0554ae3ea77085eaac", "start":{"line":6, "col":8}, "end":{"line":8, "col":4}, "version":"911c664b22f5b8dedb7f1f0554ae3ea77085eaac"}}}, "types":{"foo":{"tuple":{"attrDefs":{"that":{"primitive":"INT", "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@911c664b22f5b8dedb7f1f0554ae3ea77085eaac", "start":{"line":10, "col":16}, "end":{"line":10, "col":16}, "version":"911c664b22f5b8dedb7f1f0554ae3ea77085eaac"}}, "this":{"primitive":"STRING", "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@911c664b22f5b8dedb7f1f0554ae3ea77085eaac", "start":{"line":9, "col":16}, "end":{"line":9, "col":16}, "version":"911c664b22f5b8dedb7f1f0554ae3ea77085eaac"}}}}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@911c664b22f5b8dedb7f1f0554ae3ea77085eaac", "start":{"line":8, "col":4}, "end":{"line":11, "col":3}, "version":"911c664b22f5b8dedb7f1f0554ae3ea77085eaac"}}}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@911c664b22f5b8dedb7f1f0554ae3ea77085eaac", "start":{"line":3, "col":1}, "end":{"line":3}, "version":"911c664b22f5b8dedb7f1f0554ae3ea77085eaac"}}, "Bar":{"name":{"part":["Bar"]}, "endpoints":{"GET /address":{"name":"GET /address", "attrs":{"patterns":{"a":{"elt":[{"s":"rest"}]}}}, "stmt":[{"ret":{"payload":"ok <: sequence of foo"}}], "restParams":{"method":"GET", "path":"/address", "queryParam":[{"name":"street", "type":{"primitive":"STRING", "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@911c664b22f5b8dedb7f1f0554ae3ea77085eaac", "start":{"line":25, "col":12}, "end":{"line":25, "col":19}, "version":"911c664b22f5b8dedb7f1f0554ae3ea77085eaac"}}}]}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@911c664b22f5b8dedb7f1f0554ae3ea77085eaac", "start":{"line":25, "col":8}, "end":{"line":27, "col":4}, "version":"911c664b22f5b8dedb7f1f0554ae3ea77085eaac"}}, "GET /bar/{id}":{"name":"GET /bar/{id}", "attrs":{"patterns":{"a":{"elt":[{"s":"rest"}]}}}, "stmt":[{"call":{"target":{"part":["App"]}, "endpoint":"GET /address"}}, {"ret":{"payload":"ok <: foo"}}], "restParams":{"method":"GET", "path":"/bar/{id}", "urlParam":[{"name":"id", "type":{"primitive":"STRING", "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@911c664b22f5b8dedb7f1f0554ae3ea77085eaac", "start":{"line":12, "col":9}, "end":{"line":12, "col":22}, "version":"911c664b22f5b8dedb7f1f0554ae3ea77085eaac"}}}]}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@911c664b22f5b8dedb7f1f0554ae3ea77085eaac", "start":{"line":13, "col":8}, "end":{"line":16, "col":4}, "version":"911c664b22f5b8dedb7f1f0554ae3ea77085eaac"}}, "GET /ref/{id}":{"name":"GET /ref/{id}", "attrs":{"patterns":{"a":{"elt":[{"s":"rest"}]}}}, "stmt":[{"call":{"target":{"part":["App"]}, "endpoint":"GET /address"}}, {"ret":{"payload":"ok <: foo"}}], "restParams":{"method":"GET", "path":"/ref/{id}", "urlParam":[{"name":"id", "type":{"typeRef":{"context":{"appname":{"part":["Bar"]}}, "ref":{"path":["App", "foo"]}}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@911c664b22f5b8dedb7f1f0554ae3ea77085eaac", "start":{"line":20, "col":9}, "end":{"line":20, "col":23}, "version":"911c664b22f5b8dedb7f1f0554ae3ea77085eaac"}}}]}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@911c664b22f5b8dedb7f1f0554ae3ea77085eaac", "start":{"line":21, "col":8}, "end":{"line":24, "col":4}, "version":"911c664b22f5b8dedb7f1f0554ae3ea77085eaac"}}, "GET /sameappref/{id}":{"name":"GET /sameappref/{id}", "attrs":{"patterns":{"a":{"elt":[{"s":"rest"}]}}}, "stmt":[{"call":{"target":{"part":["App"]}, "endpoint":"GET /address"}}, {"ret":{"payload":"ok <: foo"}}], "restParams":{"method":"GET", "path":"/sameappref/{id}", "urlParam":[{"name":"id", "type":{"typeRef":{"context":{"appname":{"part":["Bar"]}}, "ref":{"path":["tar"]}}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@911c664b22f5b8dedb7f1f0554ae3ea77085eaac", "start":{"line":16, "col":16}, "end":{"line":16, "col":26}, "version":"911c664b22f5b8dedb7f1f0554ae3ea77085eaac"}}}]}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@911c664b22f5b8dedb7f1f0554ae3ea77085eaac", "start":{"line":17, "col":8}, "end":{"line":20, "col":4}, "version":"911c664b22f5b8dedb7f1f0554ae3ea77085eaac"}}}, "types":{"foo":{"tuple":{"attrDefs":{"that":{"typeRef":{"context":{"appname":{"part":["Bar"]}, "path":["foo"]}, "ref":{"path":["Bar", "tar"]}}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@911c664b22f5b8dedb7f1f0554ae3ea77085eaac", "start":{"line":29, "col":16}, "end":{"line":29, "col":20}, "version":"911c664b22f5b8dedb7f1f0554ae3ea77085eaac"}}, "this":{"primitive":"STRING", "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@911c664b22f5b8dedb7f1f0554ae3ea77085eaac", "start":{"line":28, "col":16}, "end":{"line":28, "col":16}, "version":"911c664b22f5b8dedb7f1f0554ae3ea77085eaac"}}}}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@911c664b22f5b8dedb7f1f0554ae3ea77085eaac", "start":{"line":27, "col":4}, "end":{"line":30, "col":4}, "version":"911c664b22f5b8dedb7f1f0554ae3ea77085eaac"}}, "tar":{"tuple":{"attrDefs":{"that":{"primitive":"INT", "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@911c664b22f5b8dedb7f1f0554ae3ea77085eaac", "start":{"line":32, "col":16}, "end":{"line":32, "col":16}, "version":"911c664b22f5b8dedb7f1f0554ae3ea77085eaac"}}, "this":{"primitive":"STRING", "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@911c664b22f5b8dedb7f1f0554ae3ea77085eaac", "start":{"line":31, "col":16}, "end":{"line":31, "col":16}, "version":"911c664b22f5b8dedb7f1f0554ae3ea77085eaac"}}}}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@911c664b22f5b8dedb7f1f0554ae3ea77085eaac", "start":{"line":30, "col":4}, "end":{"line":33}, "version":"911c664b22f5b8dedb7f1f0554ae3ea77085eaac"}}}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@911c664b22f5b8dedb7f1f0554ae3ea77085eaac", "start":{"line":11, "col":1}, "end":{"line":11}, "version":"911c664b22f5b8dedb7f1f0554ae3ea77085eaac"}}, "sdifnscfsdhifs":{"name":{"part":["sdifnscfsdhifs"]}, "endpoints":{"GET /address":{"name":"GET /address", "attrs":{"patterns":{"a":{"elt":[{"s":"rest"}]}}}, "param":[{"name":"ok", "type":{"typeRef":{"ref":{"path":["foo"]}}}}], "stmt":[{"ret":{"payload":"ok <: sequence of App.foo"}}], "restParams":{"method":"GET", "path":"/address"}, "sourceContext":{"file":"github.com/joshcarp/sysl-2/sysl-2.sysl@main", "start":{"line":4, "col":8}, "end":{"line":6, "col":4}, "version":"main"}}}, "types":{"foo":{"tuple":{"attrDefs":{"that":{"primitive":"INT", "sourceContext":{"file":"github.com/joshcarp/sysl-2/sysl-2.sysl@main", "start":{"line":8, "col":16}, "end":{"line":8, "col":16}, "version":"main"}}, "this":{"primitive":"STRING", "sourceContext":{"file":"github.com/joshcarp/sysl-2/sysl-2.sysl@main", "start":{"line":7, "col":16}, "end":{"line":7, "col":16}, "version":"main"}}}}, "sourceContext":{"file":"github.com/joshcarp/sysl-2/sysl-2.sysl@main", "start":{"line":6, "col":4}, "end":{"line":8, "col":19}, "version":"main"}}}, "sourceContext":{"file":"github.com/joshcarp/sysl-2/sysl-2.sysl@main", "start":{"line":2, "col":1}, "end":{"line":2}, "version":"main"}}}}`,
"github.com/joshcarp/sysl-1/sysl-1.sysl@v1.0.0": `{"apps":{"App":{"name":{"part":["App"]}, "attrs":{"package":{"s":"App"}}, "endpoints":{"GET /address":{"name":"GET /address", "attrs":{"patterns":{"a":{"elt":[{"s":"rest"}]}}}, "param":[{"name":"ok", "type":{"typeRef":{"ref":{"path":["foo"]}}}}], "stmt":[{"ret":{"payload":"ok <: sequence of App.foo"}}], "restParams":{"method":"GET", "path":"/address"}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@v1.0.0", "start":{"line":6, "col":8}, "end":{"line":8, "col":4}, "version":"v1.0.0"}}}, "types":{"foo":{"tuple":{"attrDefs":{"that":{"primitive":"INT", "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@v1.0.0", "start":{"line":10, "col":16}, "end":{"line":10, "col":16}, "version":"v1.0.0"}}, "this":{"primitive":"STRING", "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@v1.0.0", "start":{"line":9, "col":16}, "end":{"line":9, "col":16}, "version":"v1.0.0"}}}}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@v1.0.0", "start":{"line":8, "col":4}, "end":{"line":11, "col":3}, "version":"v1.0.0"}}}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@v1.0.0", "start":{"line":3, "col":1}, "end":{"line":3}, "version":"v1.0.0"}}, "Bar":{"name":{"part":["Bar"]}, "endpoints":{"GET /address":{"name":"GET /address", "attrs":{"patterns":{"a":{"elt":[{"s":"rest"}]}}}, "stmt":[{"ret":{"payload":"ok <: sequence of foo"}}], "restParams":{"method":"GET", "path":"/address", "queryParam":[{"name":"street", "type":{"primitive":"STRING", "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@v1.0.0", "start":{"line":25, "col":12}, "end":{"line":25, "col":19}, "version":"v1.0.0"}}}]}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@v1.0.0", "start":{"line":25, "col":8}, "end":{"line":27, "col":4}, "version":"v1.0.0"}}, "GET /bar/{id}":{"name":"GET /bar/{id}", "attrs":{"patterns":{"a":{"elt":[{"s":"rest"}]}}}, "stmt":[{"call":{"target":{"part":["App"]}, "endpoint":"GET /address"}}, {"ret":{"payload":"ok <: foo"}}], "restParams":{"method":"GET", "path":"/bar/{id}", "urlParam":[{"name":"id", "type":{"primitive":"STRING", "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@v1.0.0", "start":{"line":12, "col":9}, "end":{"line":12, "col":22}, "version":"v1.0.0"}}}]}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@v1.0.0", "start":{"line":13, "col":8}, "end":{"line":16, "col":4}, "version":"v1.0.0"}}, "GET /ref/{id}":{"name":"GET /ref/{id}", "attrs":{"patterns":{"a":{"elt":[{"s":"rest"}]}}}, "stmt":[{"call":{"target":{"part":["App"]}, "endpoint":"GET /address"}}, {"ret":{"payload":"ok <: foo"}}], "restParams":{"method":"GET", "path":"/ref/{id}", "urlParam":[{"name":"id", "type":{"typeRef":{"context":{"appname":{"part":["Bar"]}}, "ref":{"path":["App", "foo"]}}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@v1.0.0", "start":{"line":20, "col":9}, "end":{"line":20, "col":23}, "version":"v1.0.0"}}}]}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@v1.0.0", "start":{"line":21, "col":8}, "end":{"line":24, "col":4}, "version":"v1.0.0"}}, "GET /sameappref/{id}":{"name":"GET /sameappref/{id}", "attrs":{"patterns":{"a":{"elt":[{"s":"rest"}]}}}, "stmt":[{"call":{"target":{"part":["App"]}, "endpoint":"GET /address"}}, {"ret":{"payload":"ok <: foo"}}], "restParams":{"method":"GET", "path":"/sameappref/{id}", "urlParam":[{"name":"id", "type":{"typeRef":{"context":{"appname":{"part":["Bar"]}}, "ref":{"path":["tar"]}}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@v1.0.0", "start":{"line":16, "col":16}, "end":{"line":16, "col":26}, "version":"v1.0.0"}}}]}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@v1.0.0", "start":{"line":17, "col":8}, "end":{"line":20, "col":4}, "version":"v1.0.0"}}}, "types":{"foo":{"tuple":{"attrDefs":{"that":{"typeRef":{"context":{"appname":{"part":["Bar"]}, "path":["foo"]}, "ref":{"path":["Bar", "tar"]}}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@v1.0.0", "start":{"line":29, "col":16}, "end":{"line":29, "col":20}, "version":"v1.0.0"}}, "this":{"primitive":"STRING", "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@v1.0.0", "start":{"line":28, "col":16}, "end":{"line":28, "col":16}, "version":"v1.0.0"}}}}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@v1.0.0", "start":{"line":27, "col":4}, "end":{"line":30, "col":4}, "version":"v1.0.0"}}, "tar":{"tuple":{"attrDefs":{"that":{"primitive":"INT", "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@v1.0.0", "start":{"line":32, "col":16}, "end":{"line":32, "col":16}, "version":"v1.0.0"}}, "this":{"primitive":"STRING", "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@v1.0.0", "start":{"line":31, "col":16}, "end":{"line":31, "col":16}, "version":"v1.0.0"}}}}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@v1.0.0", "start":{"line":30, "col":4}, "end":{"line":33}, "version":"v1.0.0"}}}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@v1.0.0", "start":{"line":11, "col":1}, "end":{"line":11}, "version":"v1.0.0"}}, "sdifnscfsdhifs":{"name":{"part":["sdifnscfsdhifs"]}, "endpoints":{"GET /address":{"name":"GET /address", "attrs":{"patterns":{"a":{"elt":[{"s":"rest"}]}}}, "param":[{"name":"ok", "type":{"typeRef":{"ref":{"path":["foo"]}}}}], "stmt":[{"ret":{"payload":"ok <: sequence of App.foo"}}], "restParams":{"method":"GET", "path":"/address"}, "sourceContext":{"file":"github.com/joshcarp/sysl-2/sysl-2.sysl@main", "start":{"line":4, "col":8}, "end":{"line":6, "col":4}, "version":"main"}}}, "types":{"foo":{"tuple":{"attrDefs":{"that":{"primitive":"INT", "sourceContext":{"file":"github.com/joshcarp/sysl-2/sysl-2.sysl@main", "start":{"line":8, "col":16}, "end":{"line":8, "col":16}, "version":"main"}}, "this":{"primitive":"STRING", "sourceContext":{"file":"github.com/joshcarp/sysl-2/sysl-2.sysl@main", "start":{"line":7, "col":16}, "end":{"line":7, "col":16}, "version":"main"}}}}, "sourceContext":{"file":"github.com/joshcarp/sysl-2/sysl-2.sysl@main", "start":{"line":6, "col":4}, "end":{"line":8, "col":19}, "version":"main"}}}, "sourceContext":{"file":"github.com/joshcarp/sysl-2/sysl-2.sysl@main", "start":{"line":2, "col":1}, "end":{"line":2}, "version":"main"}}}}`,
"github.com/joshcarp/sysl-1/sysl.sysl@main": `{"apps":{"App":{"name":{"part":["App"]}, "attrs":{"package":{"s":"App"}}, "endpoints":{"GET /address":{"name":"GET /address", "attrs":{"patterns":{"a":{"elt":[{"s":"rest"}]}}}, "param":[{"name":"ok", "type":{"typeRef":{"ref":{"path":["foo"]}}}}], "stmt":[{"ret":{"payload":"ok <: sequence of App.foo"}}], "restParams":{"method":"GET", "path":"/address"}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@main", "start":{"line":6, "col":8}, "end":{"line":8, "col":4}, "version":"main"}}}, "types":{"foo":{"tuple":{"attrDefs":{"that":{"primitive":"INT", "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@main", "start":{"line":10, "col":16}, "end":{"line":10, "col":16}, "version":"main"}}, "this":{"primitive":"STRING", "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@main", "start":{"line":9, "col":16}, "end":{"line":9, "col":16}, "version":"main"}}}}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@main", "start":{"line":8, "col":4}, "end":{"line":11, "col":3}, "version":"main"}}}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@main", "start":{"line":3, "col":1}, "end":{"line":3}, "version":"main"}}, "Bar":{"name":{"part":["Bar"]}, "endpoints":{"GET /address":{"name":"GET /address", "attrs":{"patterns":{"a":{"elt":[{"s":"rest"}]}}}, "stmt":[{"ret":{"payload":"ok <: sequence of foo"}}], "restParams":{"method":"GET", "path":"/address", "queryParam":[{"name":"street", "type":{"primitive":"STRING", "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@main", "start":{"line":25, "col":12}, "end":{"line":25, "col":19}, "version":"main"}}}]}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@main", "start":{"line":25, "col":8}, "end":{"line":27, "col":4}, "version":"main"}}, "GET /bar/{id}":{"name":"GET /bar/{id}", "attrs":{"patterns":{"a":{"elt":[{"s":"rest"}]}}}, "stmt":[{"call":{"target":{"part":["App"]}, "endpoint":"GET /address"}}, {"ret":{"payload":"ok <: foo"}}], "restParams":{"method":"GET", "path":"/bar/{id}", "urlParam":[{"name":"id", "type":{"primitive":"STRING", "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@main", "start":{"line":12, "col":9}, "end":{"line":12, "col":22}, "version":"main"}}}]}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@main", "start":{"line":13, "col":8}, "end":{"line":16, "col":4}, "version":"main"}}, "GET /ref/{id}":{"name":"GET /ref/{id}", "attrs":{"patterns":{"a":{"elt":[{"s":"rest"}]}}}, "stmt":[{"call":{"target":{"part":["App"]}, "endpoint":"GET /address"}}, {"ret":{"payload":"ok <: foo"}}], "restParams":{"method":"GET", "path":"/ref/{id}", "urlParam":[{"name":"id", "type":{"typeRef":{"context":{"appname":{"part":["Bar"]}}, "ref":{"path":["App", "foo"]}}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@main", "start":{"line":20, "col":9}, "end":{"line":20, "col":23}, "version":"main"}}}]}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@main", "start":{"line":21, "col":8}, "end":{"line":24, "col":4}, "version":"main"}}, "GET /sameappref/{id}":{"name":"GET /sameappref/{id}", "attrs":{"patterns":{"a":{"elt":[{"s":"rest"}]}}}, "stmt":[{"call":{"target":{"part":["App"]}, "endpoint":"GET /address"}}, {"ret":{"payload":"ok <: foo"}}], "restParams":{"method":"GET", "path":"/sameappref/{id}", "urlParam":[{"name":"id", "type":{"typeRef":{"context":{"appname":{"part":["Bar"]}}, "ref":{"path":["tar"]}}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@main", "start":{"line":16, "col":16}, "end":{"line":16, "col":26}, "version":"main"}}}]}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@main", "start":{"line":17, "col":8}, "end":{"line":20, "col":4}, "version":"main"}}}, "types":{"foo":{"tuple":{"attrDefs":{"that":{"typeRef":{"context":{"appname":{"part":["Bar"]}, "path":["foo"]}, "ref":{"path":["Bar", "tar"]}}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@main", "start":{"line":29, "col":16}, "end":{"line":29, "col":20}, "version":"main"}}, "this":{"primitive":"STRING", "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@main", "start":{"line":28, "col":16}, "end":{"line":28, "col":16}, "version":"main"}}}}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@main", "start":{"line":27, "col":4}, "end":{"line":30, "col":4}, "version":"main"}}, "tar":{"tuple":{"attrDefs":{"that":{"primitive":"INT", "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@main", "start":{"line":32, "col":16}, "end":{"line":32, "col":16}, "version":"main"}}, "this":{"primitive":"STRING", "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@main", "start":{"line":31, "col":16}, "end":{"line":31, "col":16}, "version":"main"}}}}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@main", "start":{"line":30, "col":4}, "end":{"line":33}, "version":"main"}}}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@main", "start":{"line":11, "col":1}, "end":{"line":11}, "version":"main"}}, "_":{"name":{"part":["_"]}, "endpoints":{"...":{"name":"..."}}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl.sysl@main", "start":{"line":3, "col":1}, "end":{"line":3}, "version":"main"}}, "sdifnscfsdhifs":{"name":{"part":["sdifnscfsdhifs"]}, "endpoints":{"GET /address":{"name":"GET /address", "attrs":{"patterns":{"a":{"elt":[{"s":"rest"}]}}}, "param":[{"name":"ok", "type":{"typeRef":{"ref":{"path":["foo"]}}}}], "stmt":[{"ret":{"payload":"ok <: sequence of App.foo"}}], "restParams":{"method":"GET", "path":"/address"}, "sourceContext":{"file":"github.com/joshcarp/sysl-2/sysl-2.sysl@main", "start":{"line":4, "col":8}, "end":{"line":6, "col":4}, "version":"main"}}}, "types":{"foo":{"tuple":{"attrDefs":{"that":{"primitive":"INT", "sourceContext":{"file":"github.com/joshcarp/sysl-2/sysl-2.sysl@main", "start":{"line":8, "col":16}, "end":{"line":8, "col":16}, "version":"main"}}, "this":{"primitive":"STRING", "sourceContext":{"file":"github.com/joshcarp/sysl-2/sysl-2.sysl@main", "start":{"line":7, "col":16}, "end":{"line":7, "col":16}, "version":"main"}}}}, "sourceContext":{"file":"github.com/joshcarp/sysl-2/sysl-2.sysl@main", "start":{"line":6, "col":4}, "end":{"line":8, "col":19}, "version":"main"}}}, "sourceContext":{"file":"github.com/joshcarp/sysl-2/sysl-2.sysl@main", "start":{"line":2, "col":1}, "end":{"line":2}, "version":"main"}}}}`,
"github.com/joshcarp/sysl-1/sysl-1.sysl@main": `{"apps":{"App":{"name":{"part":["App"]}, "attrs":{"package":{"s":"App"}}, "endpoints":{"GET /address":{"name":"GET /address", "attrs":{"patterns":{"a":{"elt":[{"s":"rest"}]}}}, "param":[{"name":"ok", "type":{"typeRef":{"ref":{"path":["foo"]}}}}], "stmt":[{"ret":{"payload":"ok <: sequence of App.foo"}}], "restParams":{"method":"GET", "path":"/address"}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@main", "start":{"line":6, "col":8}, "end":{"line":8, "col":4}, "version":"main"}}}, "types":{"foo":{"tuple":{"attrDefs":{"that":{"primitive":"INT", "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@main", "start":{"line":10, "col":16}, "end":{"line":10, "col":16}, "version":"main"}}, "this":{"primitive":"STRING", "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@main", "start":{"line":9, "col":16}, "end":{"line":9, "col":16}, "version":"main"}}}}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@main", "start":{"line":8, "col":4}, "end":{"line":11, "col":3}, "version":"main"}}}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@main", "start":{"line":3, "col":1}, "end":{"line":3}, "version":"main"}}, "Bar":{"name":{"part":["Bar"]}, "endpoints":{"GET /address":{"name":"GET /address", "attrs":{"patterns":{"a":{"elt":[{"s":"rest"}]}}}, "stmt":[{"ret":{"payload":"ok <: sequence of foo"}}], "restParams":{"method":"GET", "path":"/address", "queryParam":[{"name":"street", "type":{"primitive":"STRING", "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@main", "start":{"line":25, "col":12}, "end":{"line":25, "col":19}, "version":"main"}}}]}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@main", "start":{"line":25, "col":8}, "end":{"line":27, "col":4}, "version":"main"}}, "GET /bar/{id}":{"name":"GET /bar/{id}", "attrs":{"patterns":{"a":{"elt":[{"s":"rest"}]}}}, "stmt":[{"call":{"target":{"part":["App"]}, "endpoint":"GET /address"}}, {"ret":{"payload":"ok <: foo"}}], "restParams":{"method":"GET", "path":"/bar/{id}", "urlParam":[{"name":"id", "type":{"primitive":"STRING", "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@main", "start":{"line":12, "col":9}, "end":{"line":12, "col":22}, "version":"main"}}}]}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@main", "start":{"line":13, "col":8}, "end":{"line":16, "col":4}, "version":"main"}}, "GET /ref/{id}":{"name":"GET /ref/{id}", "attrs":{"patterns":{"a":{"elt":[{"s":"rest"}]}}}, "stmt":[{"call":{"target":{"part":["App"]}, "endpoint":"GET /address"}}, {"ret":{"payload":"ok <: foo"}}], "restParams":{"method":"GET", "path":"/ref/{id}", "urlParam":[{"name":"id", "type":{"typeRef":{"context":{"appname":{"part":["Bar"]}}, "ref":{"path":["App", "foo"]}}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@main", "start":{"line":20, "col":9}, "end":{"line":20, "col":23}, "version":"main"}}}]}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@main", "start":{"line":21, "col":8}, "end":{"line":24, "col":4}, "version":"main"}}, "GET /sameappref/{id}":{"name":"GET /sameappref/{id}", "attrs":{"patterns":{"a":{"elt":[{"s":"rest"}]}}}, "stmt":[{"call":{"target":{"part":["App"]}, "endpoint":"GET /address"}}, {"ret":{"payload":"ok <: foo"}}], "restParams":{"method":"GET", "path":"/sameappref/{id}", "urlParam":[{"name":"id", "type":{"typeRef":{"context":{"appname":{"part":["Bar"]}}, "ref":{"path":["tar"]}}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@main", "start":{"line":16, "col":16}, "end":{"line":16, "col":26}, "version":"main"}}}]}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@main", "start":{"line":17, "col":8}, "end":{"line":20, "col":4}, "version":"main"}}}, "types":{"foo":{"tuple":{"attrDefs":{"that":{"typeRef":{"context":{"appname":{"part":["Bar"]}, "path":["foo"]}, "ref":{"path":["Bar", "tar"]}}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@main", "start":{"line":29, "col":16}, "end":{"line":29, "col":20}, "version":"main"}}, "this":{"primitive":"STRING", "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@main", "start":{"line":28, "col":16}, "end":{"line":28, "col":16}, "version":"main"}}}}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@main", "start":{"line":27, "col":4}, "end":{"line":30, "col":4}, "version":"main"}}, "tar":{"tuple":{"attrDefs":{"that":{"primitive":"INT", "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@main", "start":{"line":32, "col":16}, "end":{"line":32, "col":16}, "version":"main"}}, "this":{"primitive":"STRING", "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@main", "start":{"line":31, "col":16}, "end":{"line":31, "col":16}, "version":"main"}}}}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@main", "start":{"line":30, "col":4}, "end":{"line":33}, "version":"main"}}}, "sourceContext":{"file":"github.com/joshcarp/sysl-1/sysl-1.sysl@main", "start":{"line":11, "col":1}, "end":{"line":11}, "version":"main"}}, "sdifnscfsdhifs":{"name":{"part":["sdifnscfsdhifs"]}, "endpoints":{"GET /address":{"name":"GET /address", "attrs":{"patterns":{"a":{"elt":[{"s":"rest"}]}}}, "param":[{"name":"ok", "type":{"typeRef":{"ref":{"path":["foo"]}}}}], "stmt":[{"ret":{"payload":"ok <: sequence of App.foo"}}], "restParams":{"method":"GET", "path":"/address"}, "sourceContext":{"file":"github.com/joshcarp/sysl-2/sysl-2.sysl@main", "start":{"line":4, "col":8}, "end":{"line":6, "col":4}, "version":"main"}}}, "types":{"foo":{"tuple":{"attrDefs":{"that":{"primitive":"INT", "sourceContext":{"file":"github.com/joshcarp/sysl-2/sysl-2.sysl@main", "start":{"line":8, "col":16}, "end":{"line":8, "col":16}, "version":"main"}}, "this":{"primitive":"STRING", "sourceContext":{"file":"github.com/joshcarp/sysl-2/sysl-2.sysl@main", "start":{"line":7, "col":16}, "end":{"line":7, "col":16}, "version":"main"}}}}, "sourceContext":{"file":"github.com/joshcarp/sysl-2/sysl-2.sysl@main", "start":{"line":6, "col":4}, "end":{"line":8, "col":19}, "version":"main"}}}, "sourceContext":{"file":"github.com/joshcarp/sysl-2/sysl-2.sysl@main", "start":{"line":2, "col":1}, "end":{"line":2}, "version":"main"}}}}`,
}
var GithubRequestPaths = map[string]string{
/* These mock the "repo/content" endpoint */
"/repos/joshcarp/sysl-1/contents/sysl.sysl?ref=main": "import sysl-1.sysl\n\n_:\n ...\n",
"/repos/joshcarp/sysl-1/contents/sysl-1.sysl?ref=main": "import //github.com/joshcarp/sysl-2/sysl-2.sysl\n\nApp:\n @package = \"App\"\n /address:\n GET(ok <: foo):\n return ok <: sequence of App.foo\n !type foo:\n this <: string\n that <: int\nBar:\n /bar/{id <: string}:\n GET:\n App <- GET /address\n return ok <: foo\n /sameappref/{id <: tar}:\n GET:\n App <- GET /address\n return ok <: foo\n /ref/{id <: App.foo}:\n GET:\n App <- GET /address\n return ok <: foo\n /address:\n GET?street=string:\n return ok <: sequence of foo\n !type foo:\n this <: string\n that <: Bar.tar\n !type tar:\n this <: string\n that <: int\n",
"/repos/joshcarp/sysl-1/contents/sysl.sysl?ref=ee5c8cd2b97ba24226cb86556c17ad4f852915f2": "import sysl-1.sysl\n\n_:\n ...\n",
"/repos/joshcarp/sysl-1/contents/sysl-1.sysl?ref=911c664b22f5b8dedb7f1f0554ae3ea77085eaac": "import //github.com/joshcarp/sysl-2/sysl-2.sysl@main\n\nApp:\n @package = \"App\"\n /address:\n GET(ok <: foo):\n return ok <: sequence of App.foo\n !type foo:\n this <: string\n that <: int\nBar:\n /bar/{id <: string}:\n GET:\n App <- GET /address\n return ok <: foo\n /sameappref/{id <: tar}:\n GET:\n App <- GET /address\n return ok <: foo\n /ref/{id <: App.foo}:\n GET:\n App <- GET /address\n return ok <: foo\n /address:\n GET?street=string:\n return ok <: sequence of foo\n !type foo:\n this <: string\n that <: Bar.tar\n !type tar:\n this <: string\n that <: int\n",
"/repos/joshcarp/sysl-1/contents/sysl.sysl?ref=v1.0.0": "import sysl-1.sysl\n\n_:\n ...\n",
"/repos/joshcarp/sysl-1/contents/sysl-1.sysl?ref=v1.0.0": "import //github.com/joshcarp/sysl-2/sysl-2.sysl@main\n\nApp:\n @package = \"App\"\n /address:\n GET(ok <: foo):\n return ok <: sequence of App.foo\n !type foo:\n this <: string\n that <: int\nBar:\n /bar/{id <: string}:\n GET:\n App <- GET /address\n return ok <: foo\n /sameappref/{id <: tar}:\n GET:\n App <- GET /address\n return ok <: foo\n /ref/{id <: App.foo}:\n GET:\n App <- GET /address\n return ok <: foo\n /address:\n GET?street=string:\n return ok <: sequence of foo\n !type foo:\n this <: string\n that <: Bar.tar\n !type tar:\n this <: string\n that <: int\n",
/* These mock the "commits" endpoint */
"/repos/joshcarp/gop/commits/test": "dad0c54cae43ea40f3f1b5063af680ed4521eab2",
"/repos/joshcarp/gop/commits/test2": "dad0c54cae43ea40f3f1b5063af680ed4521eab2",
"/repos/joshcarp/sysl-1/contents/sysl-1.sysl?ref=e52c640e41ba2cc918e4f2dda3a2cfeb4768b075": "import //github.com/joshcarp/sysl-2/sysl-2.sysl\n\nApp:\n @package = \"App\"\n /address:\n GET(ok <: foo):\n return ok <: sequence of App.foo\n !type foo:\n this <: string\n that <: int\nBar:\n /bar/{id <: string}:\n GET:\n App <- GET /address\n return ok <: foo\n /sameappref/{id <: tar}:\n GET:\n App <- GET /address\n return ok <: foo\n /ref/{id <: App.foo}:\n GET:\n App <- GET /address\n return ok <: foo\n /address:\n GET?street=string:\n return ok <: sequence of foo\n !type foo:\n this <: string\n that <: Bar.tar\n !type tar:\n this <: string\n that <: int\n",
"/repos/joshcarp/sysl-1/contents/sysl_modules/sysl.mod?ref=e52c640e41ba2cc918e4f2dda3a2cfeb4768b075": "\ndirect:\n- pattern: github.com/joshcarp/sysl-2\n resolve: github.com/joshcarp/sysl-2@0e19b891da4ea38e82910a5ef3dc24692ab711ce",
"/repos/joshcarp/sysl-1/commits/main": "e52c640e41ba2cc918e4f2dda3a2cfeb4768b075",
"/repos/joshcarp/sysl-2/commits/0e19b891da4ea38e82910a5ef3dc24692ab711ce": "0e19b891da4ea38e82910a5ef3dc24692ab711ce",
"/repos/joshcarp/sysl-2/contents/sysl-2.sysl?ref=0e19b891da4ea38e82910a5ef3dc24692ab711ce": "\nsdifnscfsdhifs:\n /address:\n GET(ok <: foo):\n return ok <: sequence of App.foo\n !type foo:\n this <: string\n that <: int",
"/repos/joshcarp/sysl-2/contents/sysl-2.sysl?ref=main": "\nsdifnscfsdhifs:\n /address:\n GET(ok <: foo):\n return ok <: sequence of App.foo\n !type foo:\n this <: string\n that <: int",
"/repos/joshcarp/sysl-1/contents/sysl-1.sysl?ref=ee5c8cd2b97ba24226cb86556c17ad4f852915f2": "import //github.com/joshcarp/sysl-2/sysl-2.sysl\n\nApp:\n @package = \"App\"\n /address:\n GET(ok <: foo):\n return ok <: sequence of App.foo\n !type foo:\n this <: string\n that <: int\nBar:\n /bar/{id <: string}:\n GET:\n App <- GET /address\n return ok <: foo\n /sameappref/{id <: tar}:\n GET:\n App <- GET /address\n return ok <: foo\n /ref/{id <: App.foo}:\n GET:\n App <- GET /address\n return ok <: foo\n /address:\n GET?street=string:\n return ok <: sequence of foo\n !type foo:\n this <: string\n that <: Bar.tar\n !type tar:\n this <: string\n that <: int\n",
"/repos/joshcarp/sysl-2/contents/sysl-1.sysl?ref=ee5c8cd2b97ba24226cb86556c17ad4f852915f2": "import //github.com/joshcarp/sysl-2/sysl-2.sysl\n\nApp:\n @package = \"App\"\n /address:\n GET(ok <: foo):\n return ok <: sequence of App.foo\n !type foo:\n this <: string\n that <: int\nBar:\n /bar/{id <: string}:\n GET:\n App <- GET /address\n return ok <: foo\n /sameappref/{id <: tar}:\n GET:\n App <- GET /address\n return ok <: foo\n /ref/{id <: App.foo}:\n GET:\n App <- GET /address\n return ok <: foo\n /address:\n GET?street=string:\n return ok <: sequence of foo\n !type foo:\n this <: string\n that <: Bar.tar\n !type tar:\n this <: string\n that <: int\n",
}