@@ -1726,11 +1726,11 @@ func TestUserAutofillParameters(t *testing.T) {
1726
1726
t .Parallel ()
1727
1727
t .Run ("NotSelf" , func (t * testing.T ) {
1728
1728
t .Parallel ()
1729
- client , _ , api := coderdtest .NewWithAPI (t , & coderdtest.Options {IncludeProvisionerDaemon : true })
1729
+ client1 , _ , api := coderdtest .NewWithAPI (t , & coderdtest.Options {})
1730
1730
1731
- u1 := coderdtest .CreateFirstUser (t , client )
1731
+ u1 := coderdtest .CreateFirstUser (t , client1 )
1732
1732
1733
- _ , u2 := coderdtest .CreateAnotherUser (t , client , u1 .OrganizationID )
1733
+ client2 , u2 := coderdtest .CreateAnotherUser (t , client1 , u1 .OrganizationID )
1734
1734
1735
1735
ctx , cancel := context .WithTimeout (context .Background (), testutil .WaitLong )
1736
1736
defer cancel ()
@@ -1745,25 +1745,32 @@ func TestUserAutofillParameters(t *testing.T) {
1745
1745
Required : true ,
1746
1746
}).Do ()
1747
1747
1748
- _ , err := client .UserAutofillParameters (
1748
+ _ , err := client2 .UserAutofillParameters (
1749
1749
ctx ,
1750
- u2 . ID .String (),
1751
- version .Template .ID . String () ,
1750
+ u1 . UserID .String (),
1751
+ version .Template .ID ,
1752
1752
)
1753
1753
1754
1754
var apiErr * codersdk.Error
1755
1755
require .ErrorAs (t , err , & apiErr )
1756
- require .Equal (t , http .StatusForbidden , apiErr .StatusCode ())
1756
+ require .Equal (t , http .StatusBadRequest , apiErr .StatusCode ())
1757
+
1758
+ // u1 should be able to read u2's parameters as u1 is site admin.
1759
+ _ , err = client1 .UserAutofillParameters (
1760
+ ctx ,
1761
+ u2 .ID .String (),
1762
+ version .Template .ID ,
1763
+ )
1764
+ require .NoError (t , err )
1757
1765
})
1758
1766
1759
1767
t .Run ("FindsParameters" , func (t * testing.T ) {
1760
1768
t .Parallel ()
1761
- client , _ , api := coderdtest .NewWithAPI (t , & coderdtest.Options {IncludeProvisionerDaemon : true })
1769
+ client1 , _ , api := coderdtest .NewWithAPI (t , & coderdtest.Options {})
1762
1770
1763
- u1 := coderdtest .CreateFirstUser (t , client )
1771
+ u1 := coderdtest .CreateFirstUser (t , client1 )
1764
1772
1765
- ctx , cancel := context .WithTimeout (context .Background (), testutil .WaitLong )
1766
- defer cancel ()
1773
+ client2 , u2 := coderdtest .CreateAnotherUser (t , client1 , u1 .OrganizationID )
1767
1774
1768
1775
db := api .Database
1769
1776
@@ -1773,22 +1780,36 @@ func TestUserAutofillParameters(t *testing.T) {
1773
1780
}).Params (database.TemplateVersionParameter {
1774
1781
Name : "param" ,
1775
1782
Required : true ,
1776
- }).Do ()
1783
+ },
1784
+ database.TemplateVersionParameter {
1785
+ Name : "param2" ,
1786
+ Ephemeral : true ,
1787
+ },
1788
+ ).Do ()
1789
+
1790
+ dbfake .WorkspaceBuild (t , db , database.Workspace {
1791
+ OwnerID : u2 .ID ,
1792
+ TemplateID : version .Template .ID ,
1793
+ }).Params (
1794
+ database.WorkspaceBuildParameter {
1795
+ Name : "param" ,
1796
+ Value : "foo" ,
1797
+ },
1798
+ database.WorkspaceBuildParameter {
1799
+ Name : "param2" ,
1800
+ Value : "bar" ,
1801
+ },
1802
+ ).Do ()
1777
1803
1778
- coderdtest .CreateWorkspace (t , client , u1 .OrganizationID , version .Template .ID ,
1779
- func (cwr * codersdk.CreateWorkspaceRequest ) {
1780
- cwr .RichParameterValues = []codersdk.WorkspaceBuildParameter {
1781
- {
1782
- Name : "param" ,
1783
- Value : "foo" ,
1784
- },
1785
- }
1786
- })
1804
+ ctx , cancel := context .WithTimeout (context .Background (), testutil .WaitLong )
1805
+ defer cancel ()
1787
1806
1788
- params , err := client .UserAutofillParameters (
1807
+ // Use client2 since client1 is site admin, so
1808
+ // we don't get good coverage on RBAC working.
1809
+ params , err := client2 .UserAutofillParameters (
1789
1810
ctx ,
1790
- u1 . UserID .String (),
1791
- version .Template .ID . String () ,
1811
+ u2 . ID .String (),
1812
+ version .Template .ID ,
1792
1813
)
1793
1814
require .NoError (t , err )
1794
1815
0 commit comments