@@ -1883,6 +1883,7 @@ func TestInsertWorkspaceResource(t *testing.T) {
1883
1883
Name : "something" ,
1884
1884
Type : "aws_instance" ,
1885
1885
Agents : []* sdkproto.Agent {{
1886
+ Name : "dev" ,
1886
1887
Auth : & sdkproto.Agent_Token {
1887
1888
Token : "bananas" ,
1888
1889
},
@@ -1896,14 +1897,69 @@ func TestInsertWorkspaceResource(t *testing.T) {
1896
1897
Name : "something" ,
1897
1898
Type : "aws_instance" ,
1898
1899
Agents : []* sdkproto.Agent {{
1900
+ Name : "dev" ,
1899
1901
Apps : []* sdkproto.App {{
1900
1902
Slug : "a" ,
1901
1903
}, {
1902
1904
Slug : "a" ,
1903
1905
}},
1904
1906
}},
1905
1907
})
1906
- require .ErrorContains (t , err , "duplicate app slug" )
1908
+ require .ErrorContains (t , err , `duplicate app slug, must be unique per template: "a"` )
1909
+ err = insert (dbmem .New (), uuid .New (), & sdkproto.Resource {
1910
+ Name : "something" ,
1911
+ Type : "aws_instance" ,
1912
+ Agents : []* sdkproto.Agent {{
1913
+ Name : "dev1" ,
1914
+ Apps : []* sdkproto.App {{
1915
+ Slug : "a" ,
1916
+ }},
1917
+ }, {
1918
+ Name : "dev2" ,
1919
+ Apps : []* sdkproto.App {{
1920
+ Slug : "a" ,
1921
+ }},
1922
+ }},
1923
+ })
1924
+ require .ErrorContains (t , err , `duplicate app slug, must be unique per template: "a"` )
1925
+ })
1926
+ t .Run ("AppSlugInvalid" , func (t * testing.T ) {
1927
+ t .Parallel ()
1928
+ db := dbmem .New ()
1929
+ job := uuid .New ()
1930
+ err := insert (db , job , & sdkproto.Resource {
1931
+ Name : "something" ,
1932
+ Type : "aws_instance" ,
1933
+ Agents : []* sdkproto.Agent {{
1934
+ Name : "dev" ,
1935
+ Apps : []* sdkproto.App {{
1936
+ Slug : "dev_1" ,
1937
+ }},
1938
+ }},
1939
+ })
1940
+ require .ErrorContains (t , err , `app slug "dev_1" does not match regex` )
1941
+ err = insert (db , job , & sdkproto.Resource {
1942
+ Name : "something" ,
1943
+ Type : "aws_instance" ,
1944
+ Agents : []* sdkproto.Agent {{
1945
+ Name : "dev" ,
1946
+ Apps : []* sdkproto.App {{
1947
+ Slug : "dev--1" ,
1948
+ }},
1949
+ }},
1950
+ })
1951
+ require .ErrorContains (t , err , `app slug "dev--1" does not match regex` )
1952
+ err = insert (db , job , & sdkproto.Resource {
1953
+ Name : "something" ,
1954
+ Type : "aws_instance" ,
1955
+ Agents : []* sdkproto.Agent {{
1956
+ Name : "dev" ,
1957
+ Apps : []* sdkproto.App {{
1958
+ Slug : "Dev" ,
1959
+ }},
1960
+ }},
1961
+ })
1962
+ require .ErrorContains (t , err , `app slug "Dev" does not match regex` )
1907
1963
})
1908
1964
t .Run ("DuplicateAgentNames" , func (t * testing.T ) {
1909
1965
t .Parallel ()
@@ -1931,6 +1987,35 @@ func TestInsertWorkspaceResource(t *testing.T) {
1931
1987
})
1932
1988
require .ErrorContains (t , err , "duplicate agent name" )
1933
1989
})
1990
+ t .Run ("AgentNameInvalid" , func (t * testing.T ) {
1991
+ t .Parallel ()
1992
+ db := dbmem .New ()
1993
+ job := uuid .New ()
1994
+ err := insert (db , job , & sdkproto.Resource {
1995
+ Name : "something" ,
1996
+ Type : "aws_instance" ,
1997
+ Agents : []* sdkproto.Agent {{
1998
+ Name : "Dev" ,
1999
+ }},
2000
+ })
2001
+ require .NoError (t , err ) // uppercase is still allowed
2002
+ err = insert (db , job , & sdkproto.Resource {
2003
+ Name : "something" ,
2004
+ Type : "aws_instance" ,
2005
+ Agents : []* sdkproto.Agent {{
2006
+ Name : "dev_1" ,
2007
+ }},
2008
+ })
2009
+ require .ErrorContains (t , err , `agent name "dev_1" contains underscores` ) // custom error for underscores
2010
+ err = insert (db , job , & sdkproto.Resource {
2011
+ Name : "something" ,
2012
+ Type : "aws_instance" ,
2013
+ Agents : []* sdkproto.Agent {{
2014
+ Name : "dev--1" ,
2015
+ }},
2016
+ })
2017
+ require .ErrorContains (t , err , `agent name "dev--1" does not match regex` )
2018
+ })
1934
2019
t .Run ("Success" , func (t * testing.T ) {
1935
2020
t .Parallel ()
1936
2021
db := dbmem .New ()
@@ -2007,6 +2092,7 @@ func TestInsertWorkspaceResource(t *testing.T) {
2007
2092
Name : "something" ,
2008
2093
Type : "aws_instance" ,
2009
2094
Agents : []* sdkproto.Agent {{
2095
+ Name : "dev" ,
2010
2096
DisplayApps : & sdkproto.DisplayApps {
2011
2097
Vscode : true ,
2012
2098
VscodeInsiders : true ,
@@ -2035,6 +2121,7 @@ func TestInsertWorkspaceResource(t *testing.T) {
2035
2121
Name : "something" ,
2036
2122
Type : "aws_instance" ,
2037
2123
Agents : []* sdkproto.Agent {{
2124
+ Name : "dev" ,
2038
2125
DisplayApps : & sdkproto.DisplayApps {},
2039
2126
}},
2040
2127
})
@@ -2059,6 +2146,7 @@ func TestInsertWorkspaceResource(t *testing.T) {
2059
2146
Name : "something" ,
2060
2147
Type : "aws_instance" ,
2061
2148
Agents : []* sdkproto.Agent {{
2149
+ Name : "dev" ,
2062
2150
DisplayApps : & sdkproto.DisplayApps {},
2063
2151
ResourcesMonitoring : & sdkproto.ResourcesMonitoring {
2064
2152
Memory : & sdkproto.MemoryResourceMonitor {
0 commit comments