Skip to content

Commit 3a90806

Browse files
committed
fix ui stuff and add test
1 parent 80bc90b commit 3a90806

File tree

6 files changed

+66
-20
lines changed

6 files changed

+66
-20
lines changed

site/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@
5353
"react-i18next": "11.18.4",
5454
"react-markdown": "8.0.3",
5555
"react-router-dom": "6.3.0",
56-
"semver": "^7.3.7",
5756
"sourcemapped-stacktrace": "1.1.11",
5857
"swr": "1.3.0",
5958
"tzdata": "1.0.30",
@@ -82,6 +81,7 @@
8281
"@types/react": "18.0.15",
8382
"@types/react-dom": "18.0.6",
8483
"@types/react-helmet": "6.1.5",
84+
"@types/semver": "^7.3.12",
8585
"@types/superagent": "4.1.15",
8686
"@types/uuid": "8.3.4",
8787
"@typescript-eslint/eslint-plugin": "5.31.0",
@@ -113,6 +113,7 @@
113113
"prettier": "2.7.1",
114114
"prettier-plugin-organize-imports": "3.0.0",
115115
"react-hot-loader": "4.13.0",
116+
"semver": "^7.3.7",
116117
"sql-formatter": "8.2.0",
117118
"style-loader": "3.3.1",
118119
"ts-jest": "27.1.4",

site/src/components/Resources/Resources.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@ export const Resources: FC<React.PropsWithChildren<ResourcesProps>> = ({
117117
<TableCell className={styles.agentColumn}>
118118
{agent.name}
119119
<div className={styles.agentInfo}>
120+
Version
120121
<span
121122
className={styles.agentVersion}
122123
style={{ color: versionStatus.color }}

site/src/components/Workspace/Workspace.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ export const Workspace: FC<React.PropsWithChildren<WorkspaceProps>> = ({
132132
getResourcesError={workspaceErrors[WorkspaceErrors.GET_RESOURCES_ERROR]}
133133
workspace={workspace}
134134
canUpdateWorkspace={canUpdateWorkspace}
135-
buildinfo={buildInfoState.context.buildInfo}
135+
buildInfo={buildInfoState.context.buildInfo}
136136
/>
137137
)}
138138

site/src/util/workspace.test.ts

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import * as TypesGen from "../api/typesGenerated"
33
import * as Mocks from "../testHelpers/entities"
44
import {
55
defaultWorkspaceExtension,
6+
getDisplayVersionStatus,
67
getDisplayWorkspaceBuildInitiatedBy,
78
isWorkspaceDeleted,
89
isWorkspaceOn,
@@ -128,4 +129,35 @@ describe("util > workspace", () => {
128129
expect(getDisplayWorkspaceBuildInitiatedBy(build)).toEqual(initiatedBy)
129130
})
130131
})
132+
133+
describe("getDisplayVersionStatus", () => {
134+
const mockTheme = {
135+
palette: {
136+
text: {
137+
secondary: "palette.text.secondary",
138+
},
139+
primary: {
140+
main: "palette.primary.main",
141+
},
142+
success: {
143+
main: "palette.secondary.main",
144+
},
145+
},
146+
}
147+
it.each<[string, string, string]>([
148+
["", "", "(unknown)"],
149+
["", "v1.2.3", "(unknown)"],
150+
["v1.2.3", "", "v1.2.3"],
151+
["v1.2.3", "v1.2.3", "v1.2.3"],
152+
["v1.2.3", "v1.2.4", "v1.2.3 (outdated)"],
153+
["v1.2.4", "v1.2.3", "v1.2.4"],
154+
["foo", "bar", "foo"],
155+
])(
156+
`getDisplayVersionStatus(theme, %p, %p) returns %p`,
157+
(agentVersion, serverVersion, expectedVersion) => {
158+
const { version } = getDisplayVersionStatus(mockTheme, agentVersion, serverVersion)
159+
expect(version).toEqual(expectedVersion)
160+
},
161+
)
162+
})
131163
})

site/src/util/workspace.ts

Lines changed: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ import dayjs from "dayjs"
33
import duration from "dayjs/plugin/duration"
44
import minMax from "dayjs/plugin/minMax"
55
import utc from "dayjs/plugin/utc"
6+
import semver from "semver"
67
import { WorkspaceBuildTransition } from "../api/types"
78
import * as TypesGen from "../api/typesGenerated"
8-
import semver from "semver"
99

1010
dayjs.extend(duration)
1111
dayjs.extend(utc)
@@ -97,7 +97,8 @@ export const DisplayWorkspaceBuildStatusLanguage = {
9797
}
9898

9999
export const DisplayAgentVersionLanguage = {
100-
unknown: "(unknown)",
100+
unknown: "unknown",
101+
outdated: "outdated",
101102
}
102103

103104
export const getDisplayWorkspaceBuildStatus = (
@@ -217,31 +218,37 @@ export const getDisplayAgentStatus = (
217218
}
218219

219220
export const getDisplayVersionStatus = (
220-
theme: Theme,
221+
theme: {
222+
palette: {
223+
text: {
224+
secondary: string
225+
}
226+
primary: { main: string }
227+
success: { main: string }
228+
}
229+
},
221230
agentVersion: string,
222231
serverVersion: string,
223232
): {
224-
color: string,
225-
version: string,
226-
} => {
227-
if (!semver.valid(serverVersion) || semver.valid(agentVersion)) {
233+
color: string
234+
version: string
235+
} => {
236+
if (!semver.valid(serverVersion) || !semver.valid(agentVersion)) {
237+
return {
238+
color: theme.palette.text.secondary,
239+
version: `${agentVersion}` || `(${DisplayAgentVersionLanguage.unknown})`,
240+
}
241+
} else if (semver.lt(agentVersion, serverVersion)) {
228242
return {
229243
color: theme.palette.primary.main,
230-
version: agentVersion || "(version unknown)",
244+
version: `${agentVersion} (${DisplayAgentVersionLanguage.outdated})`,
231245
}
232-
}
233-
234-
if (semver.lt(agentVersion, serverVersion)) {
246+
} else {
235247
return {
236-
color: theme.palette.text.secondary,
237-
version: `${agentVersion} (outdated)`,
248+
color: theme.palette.success.main,
249+
version: agentVersion,
238250
}
239251
}
240-
241-
return {
242-
color: theme.palette.success.main,
243-
version: agentVersion,
244-
}
245252
}
246253

247254
export const isWorkspaceOn = (workspace: TypesGen.Workspace): boolean => {

site/yarn.lock

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3330,6 +3330,11 @@
33303330
resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39"
33313331
integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==
33323332

3333+
"@types/semver@^7.3.12":
3334+
version "7.3.12"
3335+
resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.12.tgz#920447fdd78d76b19de0438b7f60df3c4a80bf1c"
3336+
integrity sha512-WwA1MW0++RfXmCr12xeYOOC5baSC9mSb0ZqCquFzKhcoF4TvHu5MKOuXsncgZcpVFhB1pXd5hZmM0ryAoCp12A==
3337+
33333338
"@types/serve-index@^1.9.1":
33343339
version "1.9.1"
33353340
resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.1.tgz#1b5e85370a192c01ec6cec4735cf2917337a6278"

0 commit comments

Comments
 (0)