.github/workflows: add webclient workflow

Add workflow to run yarn lint/test/format-check against the web
client on pull requests.

Updates #10261

Signed-off-by: Sonia Appasamy <sonia@tailscale.com>
This commit is contained in:
Sonia Appasamy
2023-12-06 12:20:44 -05:00
committed by Sonia Appasamy
parent 4a24db852a
commit cc6729a0bc
6 changed files with 336 additions and 18 deletions

View File

@@ -81,16 +81,19 @@ export function setUnraidCsrfToken(token?: string) {
// incrementMetric hits the client metrics local API endpoint to
// increment the given counter metric by one.
export function incrementMetric(metricName: MetricName) {
const postData : MetricsPOSTData[] = [{
Name: metricName,
Type: "counter",
Value: 1
}]
const postData: MetricsPOSTData[] = [
{
Name: metricName,
Type: "counter",
Value: 1,
},
]
apiFetch("/local/v0/upload-client-metrics", "POST", postData)
.catch((error) => {
console.error(error)
})
apiFetch("/local/v0/upload-client-metrics", "POST", postData).catch(
(error) => {
console.error(error)
}
)
}
type MetricsPOSTData = {

View File

@@ -58,7 +58,7 @@ export function useInstallUpdate(currentVersion: string, cv?: VersionInfo) {
let tsAwayForPolls = 0
let updateMessagesRead = 0
let timer = 0
let timer: NodeJS.Timeout | undefined
function poll() {
apiFetch("/local/v0/update/progress", "GET")
@@ -123,7 +123,7 @@ export function useInstallUpdate(currentVersion: string, cv?: VersionInfo) {
// useEffect cleanup function
return () => {
if (timer) clearTimeout(timer)
timer = 0
timer = undefined
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [])

View File

@@ -0,0 +1,21 @@
// Copyright (c) Tailscale Inc & AUTHORS
// SPDX-License-Identifier: BSD-3-Clause
import { isTailscaleIPv6, pluralize } from "src/utils/util"
import { describe, expect, it } from "vitest"
describe("pluralize", () => {
it("test routes", () => {
expect(pluralize("route", "routes", 1)).toBe("route")
expect(pluralize("route", "routes", 2)).toBe("routes")
})
})
describe("isTailscaleIPv6", () => {
it("test ips", () => {
expect(isTailscaleIPv6("100.101.102.103")).toBeFalsy()
expect(
isTailscaleIPv6("fd7a:115c:a1e0:ab11:1111:cd11:111e:f11g")
).toBeTruthy()
})
})