1package workspaceid
2
3import (
4 "regexp"
5 "testing"
6
7 "github.com/stretchr/testify/require"
8)
9
10func TestConfiguredWorkspaceIDIsItsNameWhateverTheCoreID(t *testing.T) {
11 ids := WithPrefix("0a1b2c3d")
12 require.Equal(t, "name:dev", ids.ID(7, "dev"))
13 require.Equal(t, "name:dev", ids.ID(99, "dev"), "stable across launches and core IDs")
14 require.NotEqual(t, ids.ID(7, "dev"), ids.ID(7, "web"))
15}
16
17func TestNumberedWorkspaceIDIsLaunchPrefixAndCoreID(t *testing.T) {
18 ids := WithPrefix("0a1b2c3d")
19 require.Equal(t, "0a1b2c3d-7", ids.ID(7, ""))
20 require.NotEqual(t, ids.ID(7, ""), ids.ID(8, ""))
21}
22
23func TestLaunchPrefixIsEightLowercaseHexAndDiffersPerLaunch(t *testing.T) {
24 re := regexp.MustCompile(`^[0-9a-f]{8}-1$`)
25 a, b := New().ID(1, ""), New().ID(1, "")
26 require.Regexp(t, re, a)
27 require.Regexp(t, re, b)
28 require.NotEqual(t, a, b, "two launches draw two prefixes")
29}