@@ -1883,6 +1883,7 @@ func TestInsertWorkspaceResource(t *testing.T) {
18831883 Name : "something" ,
18841884 Type : "aws_instance" ,
18851885 Agents : []* sdkproto.Agent {{
1886+ Name : "dev" ,
18861887 Auth : & sdkproto.Agent_Token {
18871888 Token : "bananas" ,
18881889 },
@@ -1896,14 +1897,69 @@ func TestInsertWorkspaceResource(t *testing.T) {
18961897 Name : "something" ,
18971898 Type : "aws_instance" ,
18981899 Agents : []* sdkproto.Agent {{
1900+ Name : "dev" ,
18991901 Apps : []* sdkproto.App {{
19001902 Slug : "a" ,
19011903 }, {
19021904 Slug : "a" ,
19031905 }},
19041906 }},
19051907 })
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` )
19071963 })
19081964 t .Run ("DuplicateAgentNames" , func (t * testing.T ) {
19091965 t .Parallel ()
@@ -1931,6 +1987,35 @@ func TestInsertWorkspaceResource(t *testing.T) {
19311987 })
19321988 require .ErrorContains (t , err , "duplicate agent name" )
19331989 })
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+ })
19342019 t .Run ("Success" , func (t * testing.T ) {
19352020 t .Parallel ()
19362021 db := dbmem .New ()
@@ -2007,6 +2092,7 @@ func TestInsertWorkspaceResource(t *testing.T) {
20072092 Name : "something" ,
20082093 Type : "aws_instance" ,
20092094 Agents : []* sdkproto.Agent {{
2095+ Name : "dev" ,
20102096 DisplayApps : & sdkproto.DisplayApps {
20112097 Vscode : true ,
20122098 VscodeInsiders : true ,
@@ -2035,6 +2121,7 @@ func TestInsertWorkspaceResource(t *testing.T) {
20352121 Name : "something" ,
20362122 Type : "aws_instance" ,
20372123 Agents : []* sdkproto.Agent {{
2124+ Name : "dev" ,
20382125 DisplayApps : & sdkproto.DisplayApps {},
20392126 }},
20402127 })
@@ -2059,6 +2146,7 @@ func TestInsertWorkspaceResource(t *testing.T) {
20592146 Name : "something" ,
20602147 Type : "aws_instance" ,
20612148 Agents : []* sdkproto.Agent {{
2149+ Name : "dev" ,
20622150 DisplayApps : & sdkproto.DisplayApps {},
20632151 ResourcesMonitoring : & sdkproto.ResourcesMonitoring {
20642152 Memory : & sdkproto.MemoryResourceMonitor {
0 commit comments