From 29aec709b41e1ad94bd626616b1a6dac3c098b27 Mon Sep 17 00:00:00 2001 From: Carlos Alexandro Becker Date: Thu, 25 May 2023 22:46:41 -0300 Subject: [PATCH] test: collab tests (#314) Signed-off-by: Carlos Alexandro Becker --- testscript/script_test.go | 1 + testscript/testdata/repo-create.txtar | 18 +++++- testscript/testdata/repo-perms.txtar | 89 +++++++++++++++++++++++++++ 3 files changed, 107 insertions(+), 1 deletion(-) create mode 100644 testscript/testdata/repo-perms.txtar diff --git a/testscript/script_test.go b/testscript/script_test.go index 08e8c0b0d2e3f5b20c24f456a1e811ae740a9c0c..76c1866bddb91a7675ebe0e0d93d25447beb905b 100644 --- a/testscript/script_test.go +++ b/testscript/script_test.go @@ -45,6 +45,7 @@ func TestScript(t *testing.T) { UpdateScripts: *update, Cmds: map[string]func(ts *testscript.TestScript, neg bool, args []string){ "soft": cmdSoft(admin1.Signer()), + "usoft": cmdSoft(user1.Signer()), "git": cmdGit(key), "mkfile": cmdMkfile, "dos2unix": cmdDos2Unix, diff --git a/testscript/testdata/repo-create.txtar b/testscript/testdata/repo-create.txtar index ba1a5b706d003bb555a29cf5ff5a5603d8c91a75..633142202c19dae41e0878d1431a1a66027a4e31 100644 --- a/testscript/testdata/repo-create.txtar +++ b/testscript/testdata/repo-create.txtar @@ -1,7 +1,7 @@ # vi: set ft=conf # convert crlf to lf on windows -[windows] dos2unix tree.txt readme.md branch_list.1.txt +[windows] dos2unix tree.txt readme.md branch_list.1.txt info.txt # create a repo soft repo create repo1 -d 'description' -H -p -n 'repo11' @@ -25,6 +25,10 @@ git -C repo1 tag v0.1.0 git -C repo1 push origin HEAD git -C repo1 push origin HEAD --tags +# info +soft repo info repo1 +cmp stdout info.txt + # list tags soft repo tag list repo1 stdout 'v0.1.0' @@ -77,3 +81,15 @@ stdout branch1 -- branch_list.1.txt -- branch1 master +-- info.txt -- +Project Name: repo11 +Repository: repo1 +Description: description +Private: true +Hidden: true +Mirror: false +Default Branch: master +Branches: + - master +Tags: + - v0.1.0 diff --git a/testscript/testdata/repo-perms.txtar b/testscript/testdata/repo-perms.txtar new file mode 100644 index 0000000000000000000000000000000000000000..3d682b6fca9b2d2d41eeaf6b63f3db0f9d88bc18 --- /dev/null +++ b/testscript/testdata/repo-perms.txtar @@ -0,0 +1,89 @@ +# vi: set ft=conf + +# convert crlf to lf on windows +[windows] dos2unix info.txt + +# create a repo & user1 with admin +soft repo create repo1 -p +soft user create user1 -k "$USER1_AUTHORIZED_KEY" + +# setup repo +git clone ssh://localhost:$SSH_PORT/repo1 repo1 +mkfile ./repo1/README.md '# Project\nfoo' +git -C repo1 add -A +git -C repo1 commit -m 'first' +git -C repo1 tag v1.0.0 +git -C repo1 push origin HEAD +git -C repo1 push origin HEAD --tags + +# admin can access it +soft repo tree repo1 +soft repo blob repo1 README.md +soft repo description repo1 'desc' +soft repo project-name repo1 'proj' +soft repo private repo1 +soft repo info repo1 +cmp stdout info.txt + +# verify no collab +soft repo collab list repo1 +! stdout . + +# regular user can't access it +! usoft repo info repo1 +stderr 'Unauthorized' +! usoft repo tree repo1 +stderr 'Unauthorized' +! usoft repo tag list repo1 +stderr 'Unauthorized' +! usoft repo tag delete repo1 v1.0.0 +stderr 'Unauthorized' +! usoft repo blob repo1 README.md +stderr 'Unauthorized' +! usoft repo description repo1 +stderr 'Unauthorized' +! usoft repo description repo1 'new desc' +stderr 'Unauthorized' +! usoft repo project-name repo1 +stderr 'Unauthorized' +! usoft repo private repo1 true +stderr 'Unauthorized' +! usoft repo private repo1 +stderr 'Unauthorized' +! usoft repo rename repo1 repo11 +stderr 'Unauthorized' +! usoft repo branch default repo1 +stderr 'Unauthorized' +! usoft repo branch default repo1 main +stderr 'Unauthorized' +! usoft repo delete repo1 +stderr 'Unauthorized' + +# add user1 as collab +soft repo collab add repo1 user1 +soft repo collab list repo1 +stdout user1 +usoft repo collab list repo1 +stdout user1 + +# verify user1 has access now +usoft repo info repo1 +cmp stdout info.txt + +# delete +usoft repo delete repo1 +usoft repo list +! stdout . + +-- info.txt -- +Project Name: proj +Repository: repo1 +Description: desc +Private: true +Hidden: false +Mirror: false +Default Branch: master +Branches: + - master +Tags: + - v1.0.0