From 2fd1932699572a666ef616b7fb191ab5f56d75c6 Mon Sep 17 00:00:00 2001 From: Gusted Date: Sun, 1 Oct 2023 12:58:58 +0200 Subject: [PATCH] [GITEA] Use existing jsonschema library - Use the 'existing' jsonschema library for the nodeinfo integration test. (cherry picked from commit 73864840f27274d4cdaef23d47a6a71fc60529c3) (cherry picked from commit da36df306b7a75434c75ed5f63608e06266ca480) Conflicts: go.mod https://codeberg.org/forgejo/forgejo/pulls/1581 (cherry picked from commit 2b4ab46d8eacd2e6b2318f26e327ec59b804ea23) Conflicts: go.mod https://codeberg.org/forgejo/forgejo/pulls/1617 (cherry picked from commit 8064130344eb0d797838f8444a6d5c0e3d425716) (cherry picked from commit 0ccefc633e5cd206bd51f642c9fe7be56dae51ec) (cherry picked from commit 19e647b531c5cfaba5beabbd1de2fe65dfd44da0) (cherry picked from commit 2bcc04889d4d765eba0ebdffe7ba788c91923d35) --- go.mod | 3 --- go.sum | 7 ------- tests/integration/integration_test.go | 19 +++++++++---------- 3 files changed, 9 insertions(+), 20 deletions(-) diff --git a/go.mod b/go.mod index 1945bad63e..31a5c30c2e 100644 --- a/go.mod +++ b/go.mod @@ -100,7 +100,6 @@ require ( github.com/ulikunitz/xz v0.5.11 github.com/urfave/cli/v2 v2.25.7 github.com/xanzy/go-gitlab v0.93.1 - github.com/xeipuuv/gojsonschema v1.2.0 github.com/yohcop/openid-go v1.0.1 github.com/yuin/goldmark v1.5.6 github.com/yuin/goldmark-highlighting/v2 v2.0.0-20230729083705-37449abec8cc @@ -277,8 +276,6 @@ require ( github.com/valyala/fastjson v1.6.4 // indirect github.com/x448/float16 v0.8.4 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect - github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect - github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 // indirect github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect github.com/zeebo/blake3 v0.2.3 // indirect diff --git a/go.sum b/go.sum index fbe4fe06e5..9896dc2ca6 100644 --- a/go.sum +++ b/go.sum @@ -1047,13 +1047,6 @@ github.com/xdg-go/scram v1.1.2/go.mod h1:RT/sEzTbU5y00aCK8UOx6R7YryM0iF1N2MOmC3k github.com/xdg-go/stringprep v1.0.2/go.mod h1:8F9zXuvzgwmyT5DUm4GUfZGDdT3W+LCvS6+da4O5kxM= github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8= github.com/xdg-go/stringprep v1.0.4/go.mod h1:mPGuuIYwz7CmR2bT9j4GbQqutWS1zV24gijq1dTyGkM= -github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= -github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb h1:zGWFAtiMcyryUHoUjUJX0/lt1H2+i2Ka2n+D3DImSNo= -github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= -github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0= -github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= -github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= -github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 h1:nIPpBwaJSVYIxUFsDv3M8ofmx9yWTog9BfvIu0q41lo= github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8/go.mod h1:HUYIGzjTL3rfEspMxjDjgmT5uz5wzYJKVo23qUhYTos= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= diff --git a/tests/integration/integration_test.go b/tests/integration/integration_test.go index 11f6332d61..9e53808865 100644 --- a/tests/integration/integration_test.go +++ b/tests/integration/integration_test.go @@ -42,8 +42,8 @@ import ( "github.com/markbates/goth" "github.com/markbates/goth/gothic" goth_gitlab "github.com/markbates/goth/providers/gitlab" + "github.com/santhosh-tekuri/jsonschema/v5" "github.com/stretchr/testify/assert" - "github.com/xeipuuv/gojsonschema" ) var testWebRoutes *web.Route @@ -511,16 +511,15 @@ func VerifyJSONSchema(t testing.TB, resp *httptest.ResponseRecorder, schemaFile _, schemaFileErr := os.Stat(schemaFilePath) assert.Nil(t, schemaFileErr) - schema, schemaFileReadErr := os.ReadFile(schemaFilePath) - assert.Nil(t, schemaFileReadErr) - assert.True(t, len(schema) > 0) + schema, err := jsonschema.Compile(schemaFilePath) + assert.NoError(t, err) - nodeinfoSchema := gojsonschema.NewStringLoader(string(schema)) - nodeinfoString := gojsonschema.NewStringLoader(resp.Body.String()) - result, schemaValidationErr := gojsonschema.Validate(nodeinfoSchema, nodeinfoString) - assert.Nil(t, schemaValidationErr) - assert.Empty(t, result.Errors()) - assert.True(t, result.Valid()) + var data interface{} + err = json.Unmarshal(resp.Body.Bytes(), &data) + assert.NoError(t, err) + + schemaValidation := schema.Validate(data) + assert.Nil(t, schemaValidation) } func GetCSRF(t testing.TB, session *TestSession, urlStr string) string {