29aec709b41e1ad94bd626616b1a6dac3c098b27

Author
Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
Committer
GitHub <noreply@github.com>
Date

Message

test: collab tests (#314)

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

Diff

  1diff --git a/testscript/script_test.go b/testscript/script_test.go
  2index 08e8c0b0d2e3f5b20c24f456a1e811ae740a9c0c..76c1866bddb91a7675ebe0e0d93d25447beb905b 100644
  3--- a/testscript/script_test.go
  4+++ b/testscript/script_test.go
  5@@ -45,6 +45,7 @@ func TestScript(t *testing.T) {
  6 		UpdateScripts: *update,
  7 		Cmds: map[string]func(ts *testscript.TestScript, neg bool, args []string){
  8 			"soft":     cmdSoft(admin1.Signer()),
  9+			"usoft":    cmdSoft(user1.Signer()),
 10 			"git":      cmdGit(key),
 11 			"mkfile":   cmdMkfile,
 12 			"dos2unix": cmdDos2Unix,
 13diff --git a/testscript/testdata/repo-create.txtar b/testscript/testdata/repo-create.txtar
 14index ba1a5b706d003bb555a29cf5ff5a5603d8c91a75..633142202c19dae41e0878d1431a1a66027a4e31 100644
 15--- a/testscript/testdata/repo-create.txtar
 16+++ b/testscript/testdata/repo-create.txtar
 17@@ -1,7 +1,7 @@
 18 # vi: set ft=conf
 19 
 20 # convert crlf to lf on windows
 21-[windows] dos2unix tree.txt readme.md branch_list.1.txt
 22+[windows] dos2unix tree.txt readme.md branch_list.1.txt info.txt
 23 
 24 # create a repo
 25 soft repo create repo1 -d 'description' -H -p -n 'repo11'
 26@@ -25,6 +25,10 @@ git -C repo1 tag v0.1.0
 27 git -C repo1 push origin HEAD
 28 git -C repo1 push origin HEAD --tags
 29 
 30+# info
 31+soft repo info repo1
 32+cmp stdout info.txt
 33+
 34 # list tags
 35 soft repo tag list repo1
 36 stdout 'v0.1.0'
 37@@ -77,3 +81,15 @@ stdout branch1
 38 -- branch_list.1.txt --
 39 branch1
 40 master
 41+-- info.txt --
 42+Project Name: repo11
 43+Repository: repo1
 44+Description: description
 45+Private: true
 46+Hidden: true
 47+Mirror: false
 48+Default Branch: master
 49+Branches:
 50+  - master
 51+Tags:
 52+  - v0.1.0
 53diff --git a/testscript/testdata/repo-perms.txtar b/testscript/testdata/repo-perms.txtar
 54new file mode 100644
 55index 0000000000000000000000000000000000000000..3d682b6fca9b2d2d41eeaf6b63f3db0f9d88bc18
 56--- /dev/null
 57+++ b/testscript/testdata/repo-perms.txtar
 58@@ -0,0 +1,89 @@
 59+# vi: set ft=conf
 60+
 61+# convert crlf to lf on windows
 62+[windows] dos2unix info.txt
 63+
 64+# create a repo & user1 with admin
 65+soft repo create repo1 -p
 66+soft user create user1 -k "$USER1_AUTHORIZED_KEY"
 67+
 68+# setup repo
 69+git clone ssh://localhost:$SSH_PORT/repo1 repo1
 70+mkfile ./repo1/README.md '# Project\nfoo'
 71+git -C repo1 add -A
 72+git -C repo1 commit -m 'first'
 73+git -C repo1 tag v1.0.0
 74+git -C repo1 push origin HEAD
 75+git -C repo1 push origin HEAD --tags
 76+
 77+# admin can access it
 78+soft repo tree repo1
 79+soft repo blob repo1 README.md
 80+soft repo description repo1 'desc'
 81+soft repo project-name repo1 'proj'
 82+soft repo private repo1
 83+soft repo info repo1
 84+cmp stdout info.txt
 85+
 86+# verify no collab
 87+soft repo collab list repo1
 88+! stdout .
 89+
 90+# regular user can't access it
 91+! usoft repo info repo1
 92+stderr 'Unauthorized'
 93+! usoft repo tree repo1
 94+stderr 'Unauthorized'
 95+! usoft repo tag list repo1
 96+stderr 'Unauthorized'
 97+! usoft repo tag delete repo1 v1.0.0
 98+stderr 'Unauthorized'
 99+! usoft repo blob repo1 README.md
100+stderr 'Unauthorized'
101+! usoft repo description repo1
102+stderr 'Unauthorized'
103+! usoft repo description repo1 'new desc'
104+stderr 'Unauthorized'
105+! usoft repo project-name repo1
106+stderr 'Unauthorized'
107+! usoft repo private repo1 true
108+stderr 'Unauthorized'
109+! usoft repo private repo1
110+stderr 'Unauthorized'
111+! usoft repo rename repo1 repo11
112+stderr 'Unauthorized'
113+! usoft repo branch default repo1
114+stderr 'Unauthorized'
115+! usoft repo branch default repo1 main
116+stderr 'Unauthorized'
117+! usoft repo delete repo1
118+stderr 'Unauthorized'
119+
120+# add user1 as collab
121+soft repo collab add repo1 user1
122+soft repo collab list repo1
123+stdout user1
124+usoft repo collab list repo1
125+stdout user1
126+
127+# verify user1 has access now
128+usoft repo info repo1
129+cmp stdout info.txt
130+
131+# delete
132+usoft repo delete repo1
133+usoft repo list
134+! stdout .
135+
136+-- info.txt --
137+Project Name: proj
138+Repository: repo1
139+Description: desc
140+Private: true
141+Hidden: false
142+Mirror: false
143+Default Branch: master
144+Branches:
145+  - master
146+Tags:
147+  - v1.0.0