1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

Refactor testing harness to use defaults (#808)

* Refactor testing harness to use defaults

- Move tests into defaultly named test folders
- Use default test suffix of ".test" instead of "_test"
- Make cluster-store tests unit tests by adding more
    nesting, so that order of tests doesn't matter

Signed-off-by: Sebastian Malton <sebastian@malton.name>

Co-authored-by: Sebastian Malton <smalton@mirantis.com>
This commit is contained in:
Sebastian Malton 2020-10-02 10:05:59 -04:00 committed by GitHub
parent 14d3d88278
commit 87061cee9e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
25 changed files with 345 additions and 307 deletions

View File

@ -1,23 +1,16 @@
import { Application } from "spectron";
let appPath = ""
switch(process.platform) {
case "win32":
appPath = "./dist/win-unpacked/Lens.exe"
break
case "linux":
appPath = "./dist/linux-unpacked/kontena-lens"
break
case "darwin":
appPath = "./dist/mac/Lens.app/Contents/MacOS/Lens"
break
const AppPaths: Partial<Record<NodeJS.Platform, string>> = {
"win32": "./dist/win-unpacked/Lens.exe",
"linux": "./dist/linux-unpacked/kontena-lens",
"darwin": "./dist/mac/Lens.app/Contents/MacOS/Lens",
}
export function setup(): Application {
return new Application({
// path to electron app
args: [],
path: appPath,
path: AppPaths[process.platform],
startTimeout: 30000,
waitTimeout: 30000,
chromeDriverArgs: ['remote-debugging-port=9222'],
@ -32,7 +25,7 @@ export async function tearDown(app: Application) {
await app.stop()
try {
process.kill(pid, 0);
} catch(e) {
} catch (e) {
return
}
}

View File

@ -49,7 +49,7 @@ msgstr "<0>Filtered</0>: {itemsCount} / {allItemsCount}"
#~ msgid "<0>Your browser does not support all Lens features. </0> Please consider using another browser."
#~ msgstr "<0>Your browser does not support all Lens features. </0> Please consider using another browser."
#: src/renderer/components/dock/create-resource.tsx:56
#: src/renderer/components/dock/create-resource.tsx:58
msgid "<0>{0}</0> successfully created"
msgstr "<0>{0}</0> successfully created"
@ -57,7 +57,7 @@ msgstr "<0>{0}</0> successfully created"
#~ msgid "A HTTP proxy server URL (format: http://<address>:<port>)"
#~ msgstr "A HTTP proxy server URL (format: http://<address>:<port>)"
#: src/renderer/components/input/input.validators.ts:46
#: src/renderer/components/input/input_validators.ts:46
msgid "A System Name must be lowercase DNS labels separated by dots. DNS labels are alphanumerics and dashes enclosed by alphanumerics."
msgstr "A System Name must be lowercase DNS labels separated by dots. DNS labels are alphanumerics and dashes enclosed by alphanumerics."
@ -87,7 +87,7 @@ msgstr "Account Name"
msgid "Active"
msgstr "Active"
#: src/renderer/components/+add-cluster/add-cluster.tsx:288
#: src/renderer/components/+add-cluster/add-cluster.tsx:289
#: src/renderer/components/cluster-manager/clusters-menu.tsx:130
msgid "Add Cluster"
msgstr "Add Cluster"
@ -112,7 +112,7 @@ msgstr "Add bindings to {name}"
#~ msgid "Add cluster"
#~ msgstr "Add cluster"
#: src/renderer/components/+add-cluster/add-cluster.tsx:305
#: src/renderer/components/+add-cluster/add-cluster.tsx:306
msgid "Add cluster(s)"
msgstr "Add cluster(s)"
@ -273,7 +273,7 @@ msgstr "App Version"
msgid "App crash at <0>{pageUrl}</0>"
msgstr "App crash at <0>{pageUrl}</0>"
#: src/renderer/components/dock/edit-resource.tsx:88
#: src/renderer/components/dock/edit-resource.tsx:87
msgid "Applying.."
msgstr "Applying.."
@ -404,7 +404,7 @@ msgstr "CPU:"
#: src/renderer/components/+workspaces/workspaces.tsx:133
#: src/renderer/components/confirm-dialog/confirm-dialog.tsx:44
#: src/renderer/components/dock/info-panel.tsx:97
#: src/renderer/components/dock/info-panel.tsx:85
#: src/renderer/components/wizard/wizard.tsx:130
msgid "Cancel"
msgstr "Cancel"
@ -440,7 +440,7 @@ msgstr "Chart"
msgid "Chart Release <0>{0}</0> successfully created."
msgstr "Chart Release <0>{0}</0> successfully created."
#: src/renderer/components/+apps-helm-charts/helm-chart-details.tsx:105
#: src/renderer/components/+apps-helm-charts/helm-chart-details.tsx:124
msgid "Chart: {0}"
msgstr "Chart: {0}"
@ -647,7 +647,7 @@ msgstr "Count"
#: src/renderer/components/+user-management-roles/add-role-dialog.tsx:73
#: src/renderer/components/+user-management-roles-bindings/add-role-binding-dialog.tsx:212
#: src/renderer/components/+user-management-service-accounts/create-service-account-dialog.tsx:76
#: src/renderer/components/dock/create-resource.tsx:71
#: src/renderer/components/dock/create-resource.tsx:74
msgid "Create"
msgstr "Create"
@ -691,7 +691,7 @@ msgstr "Create new Secret"
msgid "Create new Service Account"
msgstr "Create new Service Account"
#: src/renderer/components/dock/dock.tsx:111
#: src/renderer/components/dock/dock.tsx:93
msgid "Create resource"
msgstr "Create resource"
@ -783,8 +783,8 @@ msgid "Default Runtime Class Name"
msgstr "Default Runtime Class Name"
#: src/renderer/components/+preferences/kubectl-binaries.tsx:30
msgid "Default:"
msgstr "Default:"
#~ msgid "Default:"
#~ msgstr "Default:"
#: src/renderer/components/+custom-resources/custom-resources.tsx:22
msgid "Definitions"
@ -848,15 +848,19 @@ msgstr "Domains"
msgid "Download file"
msgstr "Download file"
#: src/renderer/components/+preferences/kubectl-binaries.tsx:39
#: src/renderer/components/+preferences/kubectl-binaries.tsx:24
msgid "Download kubectl binaries"
msgstr "Download kubectl binaries"
#: src/renderer/components/+preferences/kubectl-binaries.tsx:37
msgid "Download kubectl binaries matching to Kubernetes cluster verison."
msgstr "Download kubectl binaries matching to Kubernetes cluster verison."
#~ msgid "Download kubectl binaries matching to Kubernetes cluster verison."
#~ msgstr "Download kubectl binaries matching to Kubernetes cluster verison."
#: src/renderer/components/+preferences/kubectl-binaries.tsx:41
#: src/renderer/components/+preferences/kubectl-binaries.tsx:26
msgid "Download kubectl binaries matching to Kubernetes cluster version."
msgstr "Download kubectl binaries matching to Kubernetes cluster version."
#: src/renderer/components/+preferences/kubectl-binaries.tsx:29
msgid "Download mirror for kubectl"
msgstr "Download mirror for kubectl"
@ -944,7 +948,7 @@ msgstr "Everything is fine in the Cluster"
#~ msgid "Excluded items with \"system:\" prefix"
#~ msgstr "Excluded items with \"system:\" prefix"
#: src/renderer/components/dock/dock.tsx:116
#: src/renderer/components/dock/dock.tsx:98
msgid "Exit full size mode"
msgstr "Exit full size mode"
@ -985,7 +989,7 @@ msgstr "Finalizers"
msgid "First seen"
msgstr "First seen"
#: src/renderer/components/dock/dock.tsx:116
#: src/renderer/components/dock/dock.tsx:98
msgid "Fit to window"
msgstr "Fit to window"
@ -1073,7 +1077,7 @@ msgstr "Hide"
msgid "High number of replicas may cause cluster performance issues"
msgstr "High number of replicas may cause cluster performance issues"
#: src/renderer/components/+apps-helm-charts/helm-chart-details.tsx:81
#: src/renderer/components/+apps-helm-charts/helm-chart-details.tsx:88
msgid "Home"
msgstr "Home"
@ -1128,7 +1132,7 @@ msgstr "Image"
msgid "ImagePullPolicy"
msgstr "ImagePullPolicy"
#: src/renderer/components/+user-management-service-accounts/service-accounts-details.tsx:80
#: src/renderer/components/+user-management-service-accounts/service-accounts-details.tsx:108
msgid "ImagePullSecrets"
msgstr "ImagePullSecrets"
@ -1153,8 +1157,8 @@ msgstr "Ingresses"
msgid "Init Containers"
msgstr "Init Containers"
#: src/renderer/components/+apps-helm-charts/helm-chart-details.tsx:76
#: src/renderer/components/dock/install-chart.tsx:128
#: src/renderer/components/+apps-helm-charts/helm-chart-details.tsx:83
#: src/renderer/components/dock/install-chart.tsx:127
msgid "Install"
msgstr "Install"
@ -1162,15 +1166,15 @@ msgstr "Install"
msgid "Installation complete!"
msgstr "Installation complete!"
#: src/renderer/components/dock/install-chart.tsx:128
#: src/renderer/components/dock/install-chart.tsx:127
msgid "Installing..."
msgstr "Installing..."
#: src/renderer/components/input/input.validators.ts:50
#: src/renderer/components/input/input_validators.ts:50
msgid "Invalid account ID"
msgstr "Invalid account ID"
#: src/renderer/components/input/input.validators.ts:16
#: src/renderer/components/input/input_validators.ts:16
msgid "Invalid number"
msgstr "Invalid number"
@ -1231,13 +1235,13 @@ msgstr "Key Size"
msgid "Keys"
msgstr "Keys"
#: src/renderer/components/+apps-helm-charts/helm-chart-details.tsx:87
#: src/renderer/components/+apps-helm-charts/helm-chart-details.tsx:94
msgid "Keywords"
msgstr "Keywords"
#: src/renderer/components/+events/event-details.tsx:57
#: src/renderer/components/+user-management-roles-bindings/role-binding-details.tsx:79
#: src/renderer/components/dock/edit-resource.tsx:89
#: src/renderer/components/dock/edit-resource.tsx:88
msgid "Kind"
msgstr "Kind"
@ -1249,7 +1253,7 @@ msgstr "Kubeconfig"
msgid "Kubeconfig File"
msgstr "Kubeconfig File"
#: src/renderer/components/+preferences/kubectl-binaries.tsx:35
#: src/renderer/components/+preferences/kubectl-binaries.tsx:23
msgid "Kubectl Binary"
msgstr "Kubectl Binary"
@ -1343,7 +1347,7 @@ msgstr "Logs"
msgid "Logs copied to clipboard."
msgstr "Logs copied to clipboard."
#: src/renderer/components/+apps-helm-charts/helm-chart-details.tsx:84
#: src/renderer/components/+apps-helm-charts/helm-chart-details.tsx:91
msgid "Maintainers"
msgstr "Maintainers"
@ -1369,7 +1373,7 @@ msgstr "Max Pods"
msgid "Max Unavailable"
msgstr "Max Unavailable"
#: src/renderer/components/input/input.validators.ts:41
#: src/renderer/components/input/input_validators.ts:41
msgid "Maximum length is {maxLength}"
msgstr "Maximum length is {maxLength}"
@ -1441,11 +1445,11 @@ msgstr "Min Available"
msgid "Min Pods"
msgstr "Min Pods"
#: src/renderer/components/dock/dock.tsx:117
#: src/renderer/components/dock/dock.tsx:99
msgid "Minimize"
msgstr "Minimize"
#: src/renderer/components/input/input.validators.ts:36
#: src/renderer/components/input/input_validators.ts:36
msgid "Minimum length is {minLength}"
msgstr "Minimum length is {minLength}"
@ -1454,7 +1458,7 @@ msgstr "Minimum length is {minLength}"
msgid "Mount Options"
msgstr "Mount Options"
#: src/renderer/components/+user-management-service-accounts/service-accounts-details.tsx:84
#: src/renderer/components/+user-management-service-accounts/service-accounts-details.tsx:112
msgid "Mountable secrets"
msgstr "Mountable secrets"
@ -1510,7 +1514,7 @@ msgstr "Mounts"
#: src/renderer/components/+workloads-replicasets/replicasets.tsx:50
#: src/renderer/components/+workloads-statefulsets/statefulsets.tsx:40
#: src/renderer/components/+workspaces/workspaces.tsx:130
#: src/renderer/components/dock/edit-resource.tsx:90
#: src/renderer/components/dock/edit-resource.tsx:89
#: src/renderer/components/kube-object/kube-object-meta.tsx:20
msgid "Name"
msgstr "Name"
@ -1556,7 +1560,7 @@ msgstr "Names"
#: src/renderer/components/+workloads-jobs/jobs.tsx:38
#: src/renderer/components/+workloads-pods/pods.tsx:76
#: src/renderer/components/+workloads-statefulsets/statefulsets.tsx:41
#: src/renderer/components/dock/edit-resource.tsx:91
#: src/renderer/components/dock/edit-resource.tsx:90
#: src/renderer/components/dock/install-chart.tsx:122
#: src/renderer/components/dock/upgrade-chart.tsx:98
#: src/renderer/components/item-object-list/page-filters-select.tsx:57
@ -1600,7 +1604,7 @@ msgstr "Network Policies"
msgid "New logs since opening the dialog"
msgstr "New logs since opening the dialog"
#: src/renderer/components/dock/dock.tsx:104
#: src/renderer/components/dock/dock.tsx:86
msgid "New tab"
msgstr "New tab"
@ -1734,7 +1738,7 @@ msgstr "Ok"
msgid "Ok, got it!"
msgstr "Ok, got it!"
#: src/renderer/components/dock/dock.tsx:117
#: src/renderer/components/dock/dock.tsx:99
msgid "Open"
msgstr "Open"
@ -1939,7 +1943,7 @@ msgstr "Provisioner"
msgid "Proxy is used only for non-cluster communication."
msgstr "Proxy is used only for non-cluster communication."
#: src/renderer/components/+add-cluster/add-cluster.tsx:293
#: src/renderer/components/+add-cluster/add-cluster.tsx:294
msgid "Proxy settings"
msgstr "Proxy settings"
@ -2264,7 +2268,7 @@ msgstr "Runtime Class"
#: src/renderer/components/+config-secrets/secret-details.tsx:97
#: src/renderer/components/+workloads-pods/pod-logs-dialog.tsx:216
#: src/renderer/components/+workspaces/workspaces.tsx:132
#: src/renderer/components/dock/edit-resource.tsx:88
#: src/renderer/components/dock/edit-resource.tsx:87
msgid "Save"
msgstr "Save"
@ -2318,6 +2322,10 @@ msgstr "Secret"
msgid "Secret Name"
msgstr "Secret Name"
#: src/renderer/components/+user-management-service-accounts/service-accounts-details.tsx:72
msgid "Secret is not found"
msgstr "Secret is not found"
#: src/renderer/components/+config-secrets/add-secret-dialog.tsx:147
msgid "Secret name"
msgstr "Secret name"
@ -2472,7 +2480,7 @@ msgid "Shell"
msgstr "Shell"
#: src/renderer/components/+config-secrets/secret-details.tsx:93
#: src/renderer/components/+workloads-pods/pod-container-env.tsx:100
#: src/renderer/components/+workloads-pods/pod-container-env.tsx:101
#: src/renderer/components/+workloads-pods/pod-logs-dialog.tsx:215
#: src/renderer/components/drawer/drawer-param-toggler.tsx:19
msgid "Show"
@ -2580,12 +2588,12 @@ msgstr "Strategy Type"
msgid "Sub-object"
msgstr "Sub-object"
#: src/renderer/components/dock/info-panel.tsx:104
#: src/renderer/components/dock/info-panel.tsx:93
#: src/renderer/components/wizard/wizard.tsx:131
msgid "Submit"
msgstr "Submit"
#: src/renderer/components/dock/info-panel.tsx:105
#: src/renderer/components/dock/info-panel.tsx:94
msgid "Submitting.."
msgstr "Submitting.."
@ -2627,10 +2635,14 @@ msgstr "Telemetry & usage data is collected to continuously improve the Lens exp
msgid "Terminal"
msgstr "Terminal"
#: src/renderer/components/dock/dock.tsx:107
#: src/renderer/components/dock/dock.tsx:89
msgid "Terminal session"
msgstr "Terminal session"
#: src/renderer/components/+preferences/kubectl-binaries.tsx:38
msgid "The path to the kubectl binary on the system."
msgstr "The path to the kubectl binary on the system."
#: src/renderer/components/+workloads-pods/pod-logs-dialog.tsx:226
msgid "There are no logs available for container."
msgstr "There are no logs available for container."
@ -2639,11 +2651,11 @@ msgstr "There are no logs available for container."
msgid "There are no logs available."
msgstr "There are no logs available."
#: src/renderer/components/input/input.validators.ts:6
#: src/renderer/components/input/input_validators.ts:6
msgid "This field is required"
msgstr "This field is required"
#: src/renderer/components/input/input.validators.ts:31
#: src/renderer/components/input/input_validators.ts:31
msgid "This field must be a valid path"
msgstr "This field must be a valid path"
@ -2663,7 +2675,7 @@ msgstr "To"
msgid "To help us improve the product please report bugs to {slackLink} community or {githubLink} issues tracker."
msgstr "To help us improve the product please report bugs to {slackLink} community or {githubLink} issues tracker."
#: src/renderer/components/+user-management-service-accounts/service-accounts-details.tsx:76
#: src/renderer/components/+user-management-service-accounts/service-accounts-details.tsx:104
msgid "Tokens"
msgstr "Tokens"
@ -2730,12 +2742,12 @@ msgstr "Update"
msgid "Updated"
msgstr "Updated"
#: src/renderer/components/dock/upgrade-chart.tsx:105
#: src/renderer/components/dock/upgrade-chart.tsx:104
msgid "Updating.."
msgstr "Updating.."
#: src/renderer/components/+apps-releases/release-details.tsx:176
#: src/renderer/components/dock/upgrade-chart.tsx:105
#: src/renderer/components/dock/upgrade-chart.tsx:104
msgid "Upgrade"
msgstr "Upgrade"
@ -2799,7 +2811,7 @@ msgstr "Values"
msgid "Verbs"
msgstr "Verbs"
#: src/renderer/components/+apps-helm-charts/helm-chart-details.tsx:78
#: src/renderer/components/+apps-helm-charts/helm-chart-details.tsx:85
#: src/renderer/components/+apps-helm-charts/helm-charts.tsx:66
#: src/renderer/components/+apps-releases/release-details.tsx:185
#: src/renderer/components/+apps-releases/releases.tsx:91
@ -2866,11 +2878,11 @@ msgstr "Workspaces"
msgid "Workspaces are used to organize number of clusters into logical groups."
msgstr "Workspaces are used to organize number of clusters into logical groups."
#: src/renderer/components/input/input.validators.ts:11
#: src/renderer/components/input/input_validators.ts:11
msgid "Wrong email format"
msgstr "Wrong email format"
#: src/renderer/components/input/input.validators.ts:26
#: src/renderer/components/input/input_validators.ts:26
msgid "Wrong url format"
msgstr "Wrong url format"
@ -2953,7 +2965,7 @@ msgstr "singular"
msgid "timestamps"
msgstr "timestamps"
#: src/renderer/components/dock/create-resource.tsx:55
#: src/renderer/components/dock/create-resource.tsx:57
msgid "{0, plural, one {Resource} other {Resources}}"
msgstr "{0, plural, one {Resource} other {Resources}}"
@ -3005,6 +3017,6 @@ msgstr "{resourceType} <0>{resourceName}</0> updated."
msgid "{selectedCount, plural, one {<0>Remove item <1>{selectedNames}</1>?</0>} other {<2>Remove <3>{selectedCount}</3> items <4>{selectedNames}</4> {tail}?</2>}}"
msgstr "{selectedCount, plural, one {<0>Remove item <1>{selectedNames}</1>?</0>} other {<2>Remove <3>{selectedCount}</3> items <4>{selectedNames}</4> {tail}?</2>}}"
#: src/renderer/components/dock/info-panel.tsx:99
#: src/renderer/components/dock/info-panel.tsx:88
msgid "{submitLabel} & Close"
msgstr "{submitLabel} & Close"

View File

@ -49,7 +49,7 @@ msgstr ""
#~ msgid "<0>Your browser does not support all Lens features. </0> Please consider using another browser."
#~ msgstr ""
#: src/renderer/components/dock/create-resource.tsx:56
#: src/renderer/components/dock/create-resource.tsx:58
msgid "<0>{0}</0> successfully created"
msgstr ""
@ -57,7 +57,7 @@ msgstr ""
#~ msgid "A HTTP proxy server URL (format: http://<address>:<port>)"
#~ msgstr ""
#: src/renderer/components/input/input.validators.ts:46
#: src/renderer/components/input/input_validators.ts:46
msgid "A System Name must be lowercase DNS labels separated by dots. DNS labels are alphanumerics and dashes enclosed by alphanumerics."
msgstr ""
@ -87,7 +87,7 @@ msgstr ""
msgid "Active"
msgstr ""
#: src/renderer/components/+add-cluster/add-cluster.tsx:288
#: src/renderer/components/+add-cluster/add-cluster.tsx:289
#: src/renderer/components/cluster-manager/clusters-menu.tsx:130
msgid "Add Cluster"
msgstr ""
@ -112,7 +112,7 @@ msgstr ""
#~ msgid "Add cluster"
#~ msgstr ""
#: src/renderer/components/+add-cluster/add-cluster.tsx:305
#: src/renderer/components/+add-cluster/add-cluster.tsx:306
msgid "Add cluster(s)"
msgstr ""
@ -273,7 +273,7 @@ msgstr ""
msgid "App crash at <0>{pageUrl}</0>"
msgstr ""
#: src/renderer/components/dock/edit-resource.tsx:88
#: src/renderer/components/dock/edit-resource.tsx:87
msgid "Applying.."
msgstr ""
@ -404,7 +404,7 @@ msgstr ""
#: src/renderer/components/+workspaces/workspaces.tsx:133
#: src/renderer/components/confirm-dialog/confirm-dialog.tsx:44
#: src/renderer/components/dock/info-panel.tsx:97
#: src/renderer/components/dock/info-panel.tsx:85
#: src/renderer/components/wizard/wizard.tsx:130
msgid "Cancel"
msgstr ""
@ -440,7 +440,7 @@ msgstr ""
msgid "Chart Release <0>{0}</0> successfully created."
msgstr ""
#: src/renderer/components/+apps-helm-charts/helm-chart-details.tsx:105
#: src/renderer/components/+apps-helm-charts/helm-chart-details.tsx:124
msgid "Chart: {0}"
msgstr ""
@ -643,7 +643,7 @@ msgstr ""
#: src/renderer/components/+user-management-roles/add-role-dialog.tsx:73
#: src/renderer/components/+user-management-roles-bindings/add-role-binding-dialog.tsx:212
#: src/renderer/components/+user-management-service-accounts/create-service-account-dialog.tsx:76
#: src/renderer/components/dock/create-resource.tsx:71
#: src/renderer/components/dock/create-resource.tsx:74
msgid "Create"
msgstr ""
@ -687,7 +687,7 @@ msgstr ""
msgid "Create new Service Account"
msgstr ""
#: src/renderer/components/dock/dock.tsx:111
#: src/renderer/components/dock/dock.tsx:93
msgid "Create resource"
msgstr ""
@ -779,8 +779,8 @@ msgid "Default Runtime Class Name"
msgstr ""
#: src/renderer/components/+preferences/kubectl-binaries.tsx:30
msgid "Default:"
msgstr ""
#~ msgid "Default:"
#~ msgstr ""
#: src/renderer/components/+custom-resources/custom-resources.tsx:22
msgid "Definitions"
@ -844,15 +844,19 @@ msgstr ""
msgid "Download file"
msgstr ""
#: src/renderer/components/+preferences/kubectl-binaries.tsx:39
#: src/renderer/components/+preferences/kubectl-binaries.tsx:24
msgid "Download kubectl binaries"
msgstr ""
#: src/renderer/components/+preferences/kubectl-binaries.tsx:37
msgid "Download kubectl binaries matching to Kubernetes cluster verison."
#~ msgid "Download kubectl binaries matching to Kubernetes cluster verison."
#~ msgstr ""
#: src/renderer/components/+preferences/kubectl-binaries.tsx:26
msgid "Download kubectl binaries matching to Kubernetes cluster version."
msgstr ""
#: src/renderer/components/+preferences/kubectl-binaries.tsx:41
#: src/renderer/components/+preferences/kubectl-binaries.tsx:29
msgid "Download mirror for kubectl"
msgstr ""
@ -935,7 +939,7 @@ msgstr ""
msgid "Everything is fine in the Cluster"
msgstr ""
#: src/renderer/components/dock/dock.tsx:116
#: src/renderer/components/dock/dock.tsx:98
msgid "Exit full size mode"
msgstr ""
@ -976,7 +980,7 @@ msgstr ""
msgid "First seen"
msgstr ""
#: src/renderer/components/dock/dock.tsx:116
#: src/renderer/components/dock/dock.tsx:98
msgid "Fit to window"
msgstr ""
@ -1064,7 +1068,7 @@ msgstr ""
msgid "High number of replicas may cause cluster performance issues"
msgstr ""
#: src/renderer/components/+apps-helm-charts/helm-chart-details.tsx:81
#: src/renderer/components/+apps-helm-charts/helm-chart-details.tsx:88
msgid "Home"
msgstr ""
@ -1119,7 +1123,7 @@ msgstr ""
msgid "ImagePullPolicy"
msgstr ""
#: src/renderer/components/+user-management-service-accounts/service-accounts-details.tsx:80
#: src/renderer/components/+user-management-service-accounts/service-accounts-details.tsx:108
msgid "ImagePullSecrets"
msgstr ""
@ -1144,8 +1148,8 @@ msgstr ""
msgid "Init Containers"
msgstr ""
#: src/renderer/components/+apps-helm-charts/helm-chart-details.tsx:76
#: src/renderer/components/dock/install-chart.tsx:128
#: src/renderer/components/+apps-helm-charts/helm-chart-details.tsx:83
#: src/renderer/components/dock/install-chart.tsx:127
msgid "Install"
msgstr ""
@ -1153,15 +1157,15 @@ msgstr ""
msgid "Installation complete!"
msgstr ""
#: src/renderer/components/dock/install-chart.tsx:128
#: src/renderer/components/dock/install-chart.tsx:127
msgid "Installing..."
msgstr ""
#: src/renderer/components/input/input.validators.ts:50
#: src/renderer/components/input/input_validators.ts:50
msgid "Invalid account ID"
msgstr ""
#: src/renderer/components/input/input.validators.ts:16
#: src/renderer/components/input/input_validators.ts:16
msgid "Invalid number"
msgstr ""
@ -1222,13 +1226,13 @@ msgstr ""
msgid "Keys"
msgstr ""
#: src/renderer/components/+apps-helm-charts/helm-chart-details.tsx:87
#: src/renderer/components/+apps-helm-charts/helm-chart-details.tsx:94
msgid "Keywords"
msgstr ""
#: src/renderer/components/+events/event-details.tsx:57
#: src/renderer/components/+user-management-roles-bindings/role-binding-details.tsx:79
#: src/renderer/components/dock/edit-resource.tsx:89
#: src/renderer/components/dock/edit-resource.tsx:88
msgid "Kind"
msgstr ""
@ -1240,7 +1244,7 @@ msgstr ""
msgid "Kubeconfig File"
msgstr ""
#: src/renderer/components/+preferences/kubectl-binaries.tsx:35
#: src/renderer/components/+preferences/kubectl-binaries.tsx:23
msgid "Kubectl Binary"
msgstr ""
@ -1334,7 +1338,7 @@ msgstr ""
msgid "Logs copied to clipboard."
msgstr ""
#: src/renderer/components/+apps-helm-charts/helm-chart-details.tsx:84
#: src/renderer/components/+apps-helm-charts/helm-chart-details.tsx:91
msgid "Maintainers"
msgstr ""
@ -1360,7 +1364,7 @@ msgstr ""
msgid "Max Unavailable"
msgstr ""
#: src/renderer/components/input/input.validators.ts:41
#: src/renderer/components/input/input_validators.ts:41
msgid "Maximum length is {maxLength}"
msgstr ""
@ -1432,11 +1436,11 @@ msgstr ""
msgid "Min Pods"
msgstr ""
#: src/renderer/components/dock/dock.tsx:117
#: src/renderer/components/dock/dock.tsx:99
msgid "Minimize"
msgstr ""
#: src/renderer/components/input/input.validators.ts:36
#: src/renderer/components/input/input_validators.ts:36
msgid "Minimum length is {minLength}"
msgstr ""
@ -1445,7 +1449,7 @@ msgstr ""
msgid "Mount Options"
msgstr ""
#: src/renderer/components/+user-management-service-accounts/service-accounts-details.tsx:84
#: src/renderer/components/+user-management-service-accounts/service-accounts-details.tsx:112
msgid "Mountable secrets"
msgstr ""
@ -1501,7 +1505,7 @@ msgstr ""
#: src/renderer/components/+workloads-replicasets/replicasets.tsx:50
#: src/renderer/components/+workloads-statefulsets/statefulsets.tsx:40
#: src/renderer/components/+workspaces/workspaces.tsx:130
#: src/renderer/components/dock/edit-resource.tsx:90
#: src/renderer/components/dock/edit-resource.tsx:89
#: src/renderer/components/kube-object/kube-object-meta.tsx:20
msgid "Name"
msgstr ""
@ -1547,7 +1551,7 @@ msgstr ""
#: src/renderer/components/+workloads-jobs/jobs.tsx:38
#: src/renderer/components/+workloads-pods/pods.tsx:76
#: src/renderer/components/+workloads-statefulsets/statefulsets.tsx:41
#: src/renderer/components/dock/edit-resource.tsx:91
#: src/renderer/components/dock/edit-resource.tsx:90
#: src/renderer/components/dock/install-chart.tsx:122
#: src/renderer/components/dock/upgrade-chart.tsx:98
#: src/renderer/components/item-object-list/page-filters-select.tsx:57
@ -1591,7 +1595,7 @@ msgstr ""
msgid "New logs since opening the dialog"
msgstr ""
#: src/renderer/components/dock/dock.tsx:104
#: src/renderer/components/dock/dock.tsx:86
msgid "New tab"
msgstr ""
@ -1717,7 +1721,7 @@ msgstr ""
msgid "Ok, got it!"
msgstr ""
#: src/renderer/components/dock/dock.tsx:117
#: src/renderer/components/dock/dock.tsx:99
msgid "Open"
msgstr ""
@ -1922,7 +1926,7 @@ msgstr ""
msgid "Proxy is used only for non-cluster communication."
msgstr ""
#: src/renderer/components/+add-cluster/add-cluster.tsx:293
#: src/renderer/components/+add-cluster/add-cluster.tsx:294
msgid "Proxy settings"
msgstr ""
@ -2247,7 +2251,7 @@ msgstr ""
#: src/renderer/components/+config-secrets/secret-details.tsx:97
#: src/renderer/components/+workloads-pods/pod-logs-dialog.tsx:216
#: src/renderer/components/+workspaces/workspaces.tsx:132
#: src/renderer/components/dock/edit-resource.tsx:88
#: src/renderer/components/dock/edit-resource.tsx:87
msgid "Save"
msgstr ""
@ -2301,6 +2305,10 @@ msgstr ""
msgid "Secret Name"
msgstr ""
#: src/renderer/components/+user-management-service-accounts/service-accounts-details.tsx:72
msgid "Secret is not found"
msgstr ""
#: src/renderer/components/+config-secrets/add-secret-dialog.tsx:147
msgid "Secret name"
msgstr ""
@ -2455,7 +2463,7 @@ msgid "Shell"
msgstr ""
#: src/renderer/components/+config-secrets/secret-details.tsx:93
#: src/renderer/components/+workloads-pods/pod-container-env.tsx:100
#: src/renderer/components/+workloads-pods/pod-container-env.tsx:101
#: src/renderer/components/+workloads-pods/pod-logs-dialog.tsx:215
#: src/renderer/components/drawer/drawer-param-toggler.tsx:19
msgid "Show"
@ -2563,12 +2571,12 @@ msgstr ""
msgid "Sub-object"
msgstr ""
#: src/renderer/components/dock/info-panel.tsx:104
#: src/renderer/components/dock/info-panel.tsx:93
#: src/renderer/components/wizard/wizard.tsx:131
msgid "Submit"
msgstr ""
#: src/renderer/components/dock/info-panel.tsx:105
#: src/renderer/components/dock/info-panel.tsx:94
msgid "Submitting.."
msgstr ""
@ -2610,10 +2618,14 @@ msgstr ""
msgid "Terminal"
msgstr ""
#: src/renderer/components/dock/dock.tsx:107
#: src/renderer/components/dock/dock.tsx:89
msgid "Terminal session"
msgstr ""
#: src/renderer/components/+preferences/kubectl-binaries.tsx:38
msgid "The path to the kubectl binary on the system."
msgstr ""
#: src/renderer/components/+workloads-pods/pod-logs-dialog.tsx:226
msgid "There are no logs available for container."
msgstr ""
@ -2622,11 +2634,11 @@ msgstr ""
msgid "There are no logs available."
msgstr ""
#: src/renderer/components/input/input.validators.ts:6
#: src/renderer/components/input/input_validators.ts:6
msgid "This field is required"
msgstr ""
#: src/renderer/components/input/input.validators.ts:31
#: src/renderer/components/input/input_validators.ts:31
msgid "This field must be a valid path"
msgstr ""
@ -2646,7 +2658,7 @@ msgstr ""
msgid "To help us improve the product please report bugs to {slackLink} community or {githubLink} issues tracker."
msgstr ""
#: src/renderer/components/+user-management-service-accounts/service-accounts-details.tsx:76
#: src/renderer/components/+user-management-service-accounts/service-accounts-details.tsx:104
msgid "Tokens"
msgstr ""
@ -2713,12 +2725,12 @@ msgstr ""
msgid "Updated"
msgstr ""
#: src/renderer/components/dock/upgrade-chart.tsx:105
#: src/renderer/components/dock/upgrade-chart.tsx:104
msgid "Updating.."
msgstr ""
#: src/renderer/components/+apps-releases/release-details.tsx:176
#: src/renderer/components/dock/upgrade-chart.tsx:105
#: src/renderer/components/dock/upgrade-chart.tsx:104
msgid "Upgrade"
msgstr ""
@ -2782,7 +2794,7 @@ msgstr ""
msgid "Verbs"
msgstr ""
#: src/renderer/components/+apps-helm-charts/helm-chart-details.tsx:78
#: src/renderer/components/+apps-helm-charts/helm-chart-details.tsx:85
#: src/renderer/components/+apps-helm-charts/helm-charts.tsx:66
#: src/renderer/components/+apps-releases/release-details.tsx:185
#: src/renderer/components/+apps-releases/releases.tsx:91
@ -2849,11 +2861,11 @@ msgstr ""
msgid "Workspaces are used to organize number of clusters into logical groups."
msgstr ""
#: src/renderer/components/input/input.validators.ts:11
#: src/renderer/components/input/input_validators.ts:11
msgid "Wrong email format"
msgstr ""
#: src/renderer/components/input/input.validators.ts:26
#: src/renderer/components/input/input_validators.ts:26
msgid "Wrong url format"
msgstr ""
@ -2936,7 +2948,7 @@ msgstr ""
msgid "timestamps"
msgstr ""
#: src/renderer/components/dock/create-resource.tsx:55
#: src/renderer/components/dock/create-resource.tsx:57
msgid "{0, plural, one {Resource} other {Resources}}"
msgstr ""
@ -2988,6 +3000,6 @@ msgstr ""
msgid "{selectedCount, plural, one {<0>Remove item <1>{selectedNames}</1>?</0>} other {<2>Remove <3>{selectedCount}</3> items <4>{selectedNames}</4> {tail}?</2>}}"
msgstr ""
#: src/renderer/components/dock/info-panel.tsx:99
#: src/renderer/components/dock/info-panel.tsx:88
msgid "{submitLabel} & Close"
msgstr ""

View File

@ -50,7 +50,7 @@ msgstr "<0>Отфильтровано</0>: {itemsCount} / {allItemsCount}"
#~ msgid "<0>Your browser does not support all Lens features. </0> Please consider using another browser."
#~ msgstr "<0>Ваш браузер не поддерживает все возможности Lens. </0> Пожалуйста рассмотрите использование другого современного браузера."
#: src/renderer/components/dock/create-resource.tsx:56
#: src/renderer/components/dock/create-resource.tsx:58
msgid "<0>{0}</0> successfully created"
msgstr ""
@ -58,7 +58,7 @@ msgstr ""
#~ msgid "A HTTP proxy server URL (format: http://<address>:<port>)"
#~ msgstr ""
#: src/renderer/components/input/input.validators.ts:46
#: src/renderer/components/input/input_validators.ts:46
msgid "A System Name must be lowercase DNS labels separated by dots. DNS labels are alphanumerics and dashes enclosed by alphanumerics."
msgstr "Это поле может содержать только латинские буквы в нижнем регистре, номера и дефис."
@ -88,7 +88,7 @@ msgstr "Название аккаунта"
msgid "Active"
msgstr "Активный"
#: src/renderer/components/+add-cluster/add-cluster.tsx:288
#: src/renderer/components/+add-cluster/add-cluster.tsx:289
#: src/renderer/components/cluster-manager/clusters-menu.tsx:130
msgid "Add Cluster"
msgstr ""
@ -113,7 +113,7 @@ msgstr "Добавить привязки к {name}"
#~ msgid "Add cluster"
#~ msgstr ""
#: src/renderer/components/+add-cluster/add-cluster.tsx:305
#: src/renderer/components/+add-cluster/add-cluster.tsx:306
msgid "Add cluster(s)"
msgstr ""
@ -274,7 +274,7 @@ msgstr "Версия приложения"
msgid "App crash at <0>{pageUrl}</0>"
msgstr "Сбой работы приложения на <0>{pageUrl}</0>"
#: src/renderer/components/dock/edit-resource.tsx:88
#: src/renderer/components/dock/edit-resource.tsx:87
msgid "Applying.."
msgstr "Применение.."
@ -405,7 +405,7 @@ msgstr "CPU:"
#: src/renderer/components/+workspaces/workspaces.tsx:133
#: src/renderer/components/confirm-dialog/confirm-dialog.tsx:44
#: src/renderer/components/dock/info-panel.tsx:97
#: src/renderer/components/dock/info-panel.tsx:85
#: src/renderer/components/wizard/wizard.tsx:130
msgid "Cancel"
msgstr "Отмена"
@ -441,7 +441,7 @@ msgstr "Чарт"
msgid "Chart Release <0>{0}</0> successfully created."
msgstr "Релиз чарта <0>{0}</0> успешно создан."
#: src/renderer/components/+apps-helm-charts/helm-chart-details.tsx:105
#: src/renderer/components/+apps-helm-charts/helm-chart-details.tsx:124
msgid "Chart: {0}"
msgstr "Чарт: {0}"
@ -648,7 +648,7 @@ msgstr "Кол-во"
#: src/renderer/components/+user-management-roles/add-role-dialog.tsx:73
#: src/renderer/components/+user-management-roles-bindings/add-role-binding-dialog.tsx:212
#: src/renderer/components/+user-management-service-accounts/create-service-account-dialog.tsx:76
#: src/renderer/components/dock/create-resource.tsx:71
#: src/renderer/components/dock/create-resource.tsx:74
msgid "Create"
msgstr "Создать"
@ -692,7 +692,7 @@ msgstr "Создать новый секрет"
msgid "Create new Service Account"
msgstr "Создать новый Service Account"
#: src/renderer/components/dock/dock.tsx:111
#: src/renderer/components/dock/dock.tsx:93
msgid "Create resource"
msgstr "Создать ресурс"
@ -784,8 +784,8 @@ msgid "Default Runtime Class Name"
msgstr ""
#: src/renderer/components/+preferences/kubectl-binaries.tsx:30
msgid "Default:"
msgstr ""
#~ msgid "Default:"
#~ msgstr ""
#: src/renderer/components/+custom-resources/custom-resources.tsx:22
msgid "Definitions"
@ -849,15 +849,19 @@ msgstr "Домены"
msgid "Download file"
msgstr "Скачать файл"
#: src/renderer/components/+preferences/kubectl-binaries.tsx:39
#: src/renderer/components/+preferences/kubectl-binaries.tsx:24
msgid "Download kubectl binaries"
msgstr ""
#: src/renderer/components/+preferences/kubectl-binaries.tsx:37
msgid "Download kubectl binaries matching to Kubernetes cluster verison."
#~ msgid "Download kubectl binaries matching to Kubernetes cluster verison."
#~ msgstr ""
#: src/renderer/components/+preferences/kubectl-binaries.tsx:26
msgid "Download kubectl binaries matching to Kubernetes cluster version."
msgstr ""
#: src/renderer/components/+preferences/kubectl-binaries.tsx:41
#: src/renderer/components/+preferences/kubectl-binaries.tsx:29
msgid "Download mirror for kubectl"
msgstr ""
@ -945,7 +949,7 @@ msgstr "В кластере все в порядке"
#~ msgid "Excluded items with \"system:\" prefix"
#~ msgstr "За исключением объектов с префиксом “system:”"
#: src/renderer/components/dock/dock.tsx:116
#: src/renderer/components/dock/dock.tsx:98
msgid "Exit full size mode"
msgstr "Выйти из полного размера"
@ -986,7 +990,7 @@ msgstr "Финализаторы"
msgid "First seen"
msgstr "Увиденно впервые"
#: src/renderer/components/dock/dock.tsx:116
#: src/renderer/components/dock/dock.tsx:98
msgid "Fit to window"
msgstr "По размеру окна"
@ -1074,7 +1078,7 @@ msgstr "Скрыть"
msgid "High number of replicas may cause cluster performance issues"
msgstr "Большое количество реплик может вызвать проблемы с производительностью кластера"
#: src/renderer/components/+apps-helm-charts/helm-chart-details.tsx:81
#: src/renderer/components/+apps-helm-charts/helm-chart-details.tsx:88
msgid "Home"
msgstr "Ссылка"
@ -1129,7 +1133,7 @@ msgstr "Изображение"
msgid "ImagePullPolicy"
msgstr "ImagePullPolicy"
#: src/renderer/components/+user-management-service-accounts/service-accounts-details.tsx:80
#: src/renderer/components/+user-management-service-accounts/service-accounts-details.tsx:108
msgid "ImagePullSecrets"
msgstr "ImagePullSecrets"
@ -1154,8 +1158,8 @@ msgstr "Ingresses"
msgid "Init Containers"
msgstr "Контейнеры инициализации"
#: src/renderer/components/+apps-helm-charts/helm-chart-details.tsx:76
#: src/renderer/components/dock/install-chart.tsx:128
#: src/renderer/components/+apps-helm-charts/helm-chart-details.tsx:83
#: src/renderer/components/dock/install-chart.tsx:127
msgid "Install"
msgstr "Установить"
@ -1163,15 +1167,15 @@ msgstr "Установить"
msgid "Installation complete!"
msgstr "Установка завершена!"
#: src/renderer/components/dock/install-chart.tsx:128
#: src/renderer/components/dock/install-chart.tsx:127
msgid "Installing..."
msgstr "Установка.."
#: src/renderer/components/input/input.validators.ts:50
#: src/renderer/components/input/input_validators.ts:50
msgid "Invalid account ID"
msgstr "Неверный ID аккаунта"
#: src/renderer/components/input/input.validators.ts:16
#: src/renderer/components/input/input_validators.ts:16
msgid "Invalid number"
msgstr "Неверный номер"
@ -1232,13 +1236,13 @@ msgstr "Размер ключа"
msgid "Keys"
msgstr "Ключи"
#: src/renderer/components/+apps-helm-charts/helm-chart-details.tsx:87
#: src/renderer/components/+apps-helm-charts/helm-chart-details.tsx:94
msgid "Keywords"
msgstr "Ключевые слова"
#: src/renderer/components/+events/event-details.tsx:57
#: src/renderer/components/+user-management-roles-bindings/role-binding-details.tsx:79
#: src/renderer/components/dock/edit-resource.tsx:89
#: src/renderer/components/dock/edit-resource.tsx:88
msgid "Kind"
msgstr "Тип"
@ -1250,7 +1254,7 @@ msgstr "Файл конфигурации"
msgid "Kubeconfig File"
msgstr "Файл конфигурации"
#: src/renderer/components/+preferences/kubectl-binaries.tsx:35
#: src/renderer/components/+preferences/kubectl-binaries.tsx:23
msgid "Kubectl Binary"
msgstr ""
@ -1344,7 +1348,7 @@ msgstr "Логи"
msgid "Logs copied to clipboard."
msgstr "Скопировано."
#: src/renderer/components/+apps-helm-charts/helm-chart-details.tsx:84
#: src/renderer/components/+apps-helm-charts/helm-chart-details.tsx:91
msgid "Maintainers"
msgstr "Создатели"
@ -1370,7 +1374,7 @@ msgstr "Макс. подов"
msgid "Max Unavailable"
msgstr ""
#: src/renderer/components/input/input.validators.ts:41
#: src/renderer/components/input/input_validators.ts:41
msgid "Maximum length is {maxLength}"
msgstr "Максимальная длина {maxLength}"
@ -1442,11 +1446,11 @@ msgstr ""
msgid "Min Pods"
msgstr "Мин. подов"
#: src/renderer/components/dock/dock.tsx:117
#: src/renderer/components/dock/dock.tsx:99
msgid "Minimize"
msgstr "Минимизировать"
#: src/renderer/components/input/input.validators.ts:36
#: src/renderer/components/input/input_validators.ts:36
msgid "Minimum length is {minLength}"
msgstr "Минимальная длина {minLength}"
@ -1455,7 +1459,7 @@ msgstr "Минимальная длина {minLength}"
msgid "Mount Options"
msgstr "Опции монтирования"
#: src/renderer/components/+user-management-service-accounts/service-accounts-details.tsx:84
#: src/renderer/components/+user-management-service-accounts/service-accounts-details.tsx:112
msgid "Mountable secrets"
msgstr "Монтируемые секреты"
@ -1511,7 +1515,7 @@ msgstr "Установки"
#: src/renderer/components/+workloads-replicasets/replicasets.tsx:50
#: src/renderer/components/+workloads-statefulsets/statefulsets.tsx:40
#: src/renderer/components/+workspaces/workspaces.tsx:130
#: src/renderer/components/dock/edit-resource.tsx:90
#: src/renderer/components/dock/edit-resource.tsx:89
#: src/renderer/components/kube-object/kube-object-meta.tsx:20
msgid "Name"
msgstr "Имя"
@ -1557,7 +1561,7 @@ msgstr ""
#: src/renderer/components/+workloads-jobs/jobs.tsx:38
#: src/renderer/components/+workloads-pods/pods.tsx:76
#: src/renderer/components/+workloads-statefulsets/statefulsets.tsx:41
#: src/renderer/components/dock/edit-resource.tsx:91
#: src/renderer/components/dock/edit-resource.tsx:90
#: src/renderer/components/dock/install-chart.tsx:122
#: src/renderer/components/dock/upgrade-chart.tsx:98
#: src/renderer/components/item-object-list/page-filters-select.tsx:57
@ -1601,7 +1605,7 @@ msgstr "Network Policies"
msgid "New logs since opening the dialog"
msgstr "Новые логи с момента открытия диалога"
#: src/renderer/components/dock/dock.tsx:104
#: src/renderer/components/dock/dock.tsx:86
msgid "New tab"
msgstr "Новая вкладка"
@ -1735,7 +1739,7 @@ msgstr "Ок"
msgid "Ok, got it!"
msgstr ""
#: src/renderer/components/dock/dock.tsx:117
#: src/renderer/components/dock/dock.tsx:99
msgid "Open"
msgstr "Открыть"
@ -1940,7 +1944,7 @@ msgstr "Комиссия"
msgid "Proxy is used only for non-cluster communication."
msgstr ""
#: src/renderer/components/+add-cluster/add-cluster.tsx:293
#: src/renderer/components/+add-cluster/add-cluster.tsx:294
msgid "Proxy settings"
msgstr ""
@ -2265,7 +2269,7 @@ msgstr ""
#: src/renderer/components/+config-secrets/secret-details.tsx:97
#: src/renderer/components/+workloads-pods/pod-logs-dialog.tsx:216
#: src/renderer/components/+workspaces/workspaces.tsx:132
#: src/renderer/components/dock/edit-resource.tsx:88
#: src/renderer/components/dock/edit-resource.tsx:87
msgid "Save"
msgstr "Сохранить"
@ -2319,6 +2323,10 @@ msgstr "Секрет"
msgid "Secret Name"
msgstr "Название секрета"
#: src/renderer/components/+user-management-service-accounts/service-accounts-details.tsx:72
msgid "Secret is not found"
msgstr ""
#: src/renderer/components/+config-secrets/add-secret-dialog.tsx:147
msgid "Secret name"
msgstr "Имя секрета"
@ -2473,7 +2481,7 @@ msgid "Shell"
msgstr "Командная строка"
#: src/renderer/components/+config-secrets/secret-details.tsx:93
#: src/renderer/components/+workloads-pods/pod-container-env.tsx:100
#: src/renderer/components/+workloads-pods/pod-container-env.tsx:101
#: src/renderer/components/+workloads-pods/pod-logs-dialog.tsx:215
#: src/renderer/components/drawer/drawer-param-toggler.tsx:19
msgid "Show"
@ -2581,12 +2589,12 @@ msgstr "Тип стратегии"
msgid "Sub-object"
msgstr "Суб-объект"
#: src/renderer/components/dock/info-panel.tsx:104
#: src/renderer/components/dock/info-panel.tsx:93
#: src/renderer/components/wizard/wizard.tsx:131
msgid "Submit"
msgstr "Отправить"
#: src/renderer/components/dock/info-panel.tsx:105
#: src/renderer/components/dock/info-panel.tsx:94
msgid "Submitting.."
msgstr "Применение.."
@ -2628,10 +2636,14 @@ msgstr ""
msgid "Terminal"
msgstr "Терминал"
#: src/renderer/components/dock/dock.tsx:107
#: src/renderer/components/dock/dock.tsx:89
msgid "Terminal session"
msgstr "Сессия терминала"
#: src/renderer/components/+preferences/kubectl-binaries.tsx:38
msgid "The path to the kubectl binary on the system."
msgstr ""
#: src/renderer/components/+workloads-pods/pod-logs-dialog.tsx:226
msgid "There are no logs available for container."
msgstr "Для контейнера нет логов."
@ -2640,11 +2652,11 @@ msgstr "Для контейнера нет логов."
msgid "There are no logs available."
msgstr "Логи отсутствуют."
#: src/renderer/components/input/input.validators.ts:6
#: src/renderer/components/input/input_validators.ts:6
msgid "This field is required"
msgstr "Это обязательное поле"
#: src/renderer/components/input/input.validators.ts:31
#: src/renderer/components/input/input_validators.ts:31
msgid "This field must be a valid path"
msgstr ""
@ -2664,7 +2676,7 @@ msgstr "Из"
msgid "To help us improve the product please report bugs to {slackLink} community or {githubLink} issues tracker."
msgstr "Чтобы помочь нам улучшить продукт пожалуйста отправляйте ошибки на {slackLink} сообщество или {githubLink} трекер ошибок."
#: src/renderer/components/+user-management-service-accounts/service-accounts-details.tsx:76
#: src/renderer/components/+user-management-service-accounts/service-accounts-details.tsx:104
msgid "Tokens"
msgstr "Токены"
@ -2731,12 +2743,12 @@ msgstr "Обновить"
msgid "Updated"
msgstr "Обновлено"
#: src/renderer/components/dock/upgrade-chart.tsx:105
#: src/renderer/components/dock/upgrade-chart.tsx:104
msgid "Updating.."
msgstr "Обновление.."
#: src/renderer/components/+apps-releases/release-details.tsx:176
#: src/renderer/components/dock/upgrade-chart.tsx:105
#: src/renderer/components/dock/upgrade-chart.tsx:104
msgid "Upgrade"
msgstr "Обновить"
@ -2800,7 +2812,7 @@ msgstr "Конфигурация"
msgid "Verbs"
msgstr "Определения"
#: src/renderer/components/+apps-helm-charts/helm-chart-details.tsx:78
#: src/renderer/components/+apps-helm-charts/helm-chart-details.tsx:85
#: src/renderer/components/+apps-helm-charts/helm-charts.tsx:66
#: src/renderer/components/+apps-releases/release-details.tsx:185
#: src/renderer/components/+apps-releases/releases.tsx:91
@ -2867,11 +2879,11 @@ msgstr ""
msgid "Workspaces are used to organize number of clusters into logical groups."
msgstr ""
#: src/renderer/components/input/input.validators.ts:11
#: src/renderer/components/input/input_validators.ts:11
msgid "Wrong email format"
msgstr "Неверный формат электронной почты"
#: src/renderer/components/input/input.validators.ts:26
#: src/renderer/components/input/input_validators.ts:26
msgid "Wrong url format"
msgstr "Неверный url формат"
@ -2954,7 +2966,7 @@ msgstr ""
msgid "timestamps"
msgstr "временные метки"
#: src/renderer/components/dock/create-resource.tsx:55
#: src/renderer/components/dock/create-resource.tsx:57
msgid "{0, plural, one {Resource} other {Resources}}"
msgstr "{0, plural, one {Ресурс} few {Ресурсы} many {Ресурсы} other {Ресурсы}}"
@ -3013,6 +3025,6 @@ msgstr ""
"other {<2>Удалить <3>{selectedCount}</3> элементов <4>{selectedNames}</4> {tail}?</2>}\n"
"}"
#: src/renderer/components/dock/info-panel.tsx:99
#: src/renderer/components/dock/info-panel.tsx:88
msgid "{submitLabel} & Close"
msgstr "{submitLabel} и закрыть"

View File

@ -60,7 +60,6 @@
]
},
"jest": {
"testRegex": ".*_(spec|test)\\.[jt]sx?$",
"collectCoverage": false,
"verbose": true,
"testEnvironment": "node",

View File

@ -1,9 +1,9 @@
import fs from "fs";
import mockFs from "mock-fs";
import yaml from "js-yaml";
import { Cluster } from "../main/cluster";
import { ClusterStore } from "./cluster-store";
import { workspaceStore } from "./workspace-store";
import { Cluster } from "../../main/cluster";
import { ClusterStore } from "../cluster-store";
import { workspaceStore } from "../workspace-store";
const testDataIcon = fs.readFileSync("test-data/cluster-store-migration-icon.png")
@ -12,7 +12,7 @@ console.log("") // fix bug
let clusterStore: ClusterStore;
describe("empty config", () => {
beforeAll(() => {
beforeEach(() => {
ClusterStore.resetInstance();
const mockOpts = {
'tmp': {
@ -24,109 +24,120 @@ describe("empty config", () => {
return clusterStore.load();
})
afterAll(() => {
afterEach(() => {
mockFs.restore();
})
it("adds new cluster to store", async () => {
const cluster = new Cluster({
id: "foo",
contextName: "minikube",
preferences: {
terminalCWD: "/tmp",
icon: "data:;base64,iVBORw0KGgoAAAANSUhEUgAAA1wAAAKoCAYAAABjkf5",
clusterName: "minikube"
},
kubeConfigPath: ClusterStore.embedCustomKubeConfig("foo", "fancy foo config"),
workspace: workspaceStore.currentWorkspaceId
describe("with foo cluster added", () => {
beforeEach(() => {
clusterStore.addCluster(
new Cluster({
id: "foo",
contextName: "minikube",
preferences: {
terminalCWD: "/tmp",
icon: "data:image/jpeg;base64, iVBORw0KGgoAAAANSUhEUgAAA1wAAAKoCAYAAABjkf5",
clusterName: "minikube"
},
kubeConfigPath: ClusterStore.embedCustomKubeConfig("foo", "fancy foo config"),
workspace: workspaceStore.currentWorkspaceId
})
);
})
it("adds new cluster to store", async () => {
const storedCluster = clusterStore.getById("foo");
expect(storedCluster.id).toBe("foo");
expect(storedCluster.preferences.terminalCWD).toBe("/tmp");
expect(storedCluster.preferences.icon).toBe("data:image/jpeg;base64, iVBORw0KGgoAAAANSUhEUgAAA1wAAAKoCAYAAABjkf5");
})
it("adds cluster to default workspace", () => {
const storedCluster = clusterStore.getById("foo");
expect(storedCluster.workspace).toBe("default");
})
it("removes cluster from store", async () => {
await clusterStore.removeById("foo");
expect(clusterStore.getById("foo")).toBeUndefined();
})
it("sets active cluster", () => {
clusterStore.setActive("foo");
expect(clusterStore.activeCluster.id).toBe("foo");
})
})
describe("with prod and dev clusters added", () => {
beforeEach(() => {
clusterStore.addCluster(
new Cluster({
id: "prod",
contextName: "prod",
preferences: {
clusterName: "prod"
},
kubeConfigPath: ClusterStore.embedCustomKubeConfig("prod", "fancy config"),
workspace: "workstation"
}),
new Cluster({
id: "dev",
contextName: "dev",
preferences: {
clusterName: "dev"
},
kubeConfigPath: ClusterStore.embedCustomKubeConfig("dev", "fancy config"),
workspace: "workstation"
})
)
})
it("check if store can contain multiple clusters", () => {
expect(clusterStore.hasClusters()).toBeTruthy();
expect(clusterStore.clusters.size).toBe(2);
});
clusterStore.addCluster(cluster);
const storedCluster = clusterStore.getById(cluster.id);
expect(storedCluster.id).toBe(cluster.id);
expect(storedCluster.preferences.terminalCWD).toBe(cluster.preferences.terminalCWD);
expect(storedCluster.preferences.icon).toBe(cluster.preferences.icon);
})
it("adds cluster to default workspace", () => {
const storedCluster = clusterStore.getById("foo");
expect(storedCluster.workspace).toBe("default");
})
it("gets clusters by workspaces", () => {
const wsClusters = clusterStore.getByWorkspaceId("workstation");
const defaultClusters = clusterStore.getByWorkspaceId("default");
expect(defaultClusters.length).toBe(0);
expect(wsClusters.length).toBe(2);
expect(wsClusters[0].id).toBe("prod");
expect(wsClusters[1].id).toBe("dev");
})
it("check if store can contain multiple clusters", () => {
const prodCluster = new Cluster({
id: "prod",
contextName: "prod",
preferences: {
clusterName: "prod"
},
kubeConfigPath: ClusterStore.embedCustomKubeConfig("prod", "fancy config"),
workspace: "workstation"
});
const devCluster = new Cluster({
id: "dev",
contextName: "dev",
preferences: {
clusterName: "dev"
},
kubeConfigPath: ClusterStore.embedCustomKubeConfig("dev", "fancy config"),
workspace: "workstation"
});
clusterStore.addCluster(prodCluster);
clusterStore.addCluster(devCluster);
expect(clusterStore.hasClusters()).toBeTruthy();
expect(clusterStore.clusters.size).toBe(3);
});
it("check if cluster's kubeconfig file saved", () => {
const file = ClusterStore.embedCustomKubeConfig("boo", "kubeconfig");
expect(fs.readFileSync(file, "utf8")).toBe("kubeconfig");
})
it("gets clusters by workspaces", () => {
const wsClusters = clusterStore.getByWorkspaceId("workstation");
const defaultClusters = clusterStore.getByWorkspaceId("default");
expect(defaultClusters.length).toBe(1);
expect(wsClusters.length).toBe(2);
expect(wsClusters[0].id).toBe("prod");
expect(wsClusters[1].id).toBe("dev");
})
it("check if reorderring works for same from and to", () => {
clusterStore.swapIconOrders("workstation", 1, 1)
it("sets active cluster", () => {
clusterStore.setActive("foo");
expect(clusterStore.activeCluster.id).toBe("foo");
})
const clusters = clusterStore.getByWorkspaceId("workstation");
expect(clusters[0].id).toBe("prod")
expect(clusters[0].preferences.iconOrder).toBe(0)
expect(clusters[1].id).toBe("dev")
expect(clusters[1].preferences.iconOrder).toBe(1)
})
it("check if cluster's kubeconfig file saved", () => {
const file = ClusterStore.embedCustomKubeConfig("boo", "kubeconfig");
expect(fs.readFileSync(file, "utf8")).toBe("kubeconfig");
})
it("check if reorderring works for different from and to", () => {
clusterStore.swapIconOrders("workstation", 0, 1)
it("check if reorderring works for same from and to", () => {
clusterStore.swapIconOrders("workstation", 1, 1)
const clusters = clusterStore.getByWorkspaceId("workstation");
expect(clusters[0].id).toBe("dev")
expect(clusters[0].preferences.iconOrder).toBe(0)
expect(clusters[1].id).toBe("prod")
expect(clusters[1].preferences.iconOrder).toBe(1)
})
const clusters = clusterStore.getByWorkspaceId("workstation");
expect(clusters[0].id).toBe("prod")
expect(clusters[0].preferences.iconOrder).toBe(0)
expect(clusters[1].id).toBe("dev")
expect(clusters[1].preferences.iconOrder).toBe(1)
});
it("check if after icon reordering, changing workspaces still works", () => {
clusterStore.swapIconOrders("workstation", 1, 1)
clusterStore.getById("prod").workspace = "default"
it("check if reorderring works for different from and to", () => {
clusterStore.swapIconOrders("workstation", 0, 1)
const clusters = clusterStore.getByWorkspaceId("workstation");
expect(clusters[0].id).toBe("dev")
expect(clusters[0].preferences.iconOrder).toBe(0)
expect(clusters[1].id).toBe("prod")
expect(clusters[1].preferences.iconOrder).toBe(1)
});
it("check if after icon reordering, changing workspaces still works", () => {
clusterStore.swapIconOrders("workstation", 1, 1)
clusterStore.getById("prod").workspace = "default"
expect(clusterStore.getByWorkspaceId("workstation").length).toBe(1);
expect(clusterStore.getByWorkspaceId("default").length).toBe(2);
});
it("removes cluster from store", async () => {
await clusterStore.removeById("foo");
expect(clusterStore.getById("foo")).toBeUndefined();
expect(clusterStore.getByWorkspaceId("workstation").length).toBe(1);
expect(clusterStore.getByWorkspaceId("default").length).toBe(1);
})
})
})

View File

@ -10,7 +10,7 @@ jest.mock("electron", () => {
}
})
import { UserStore } from "./user-store"
import { UserStore } from "../user-store"
import { SemVer } from "semver"
import electron from "electron"

View File

@ -10,7 +10,7 @@ jest.mock("electron", () => {
}
})
import { WorkspaceStore } from "./workspace-store"
import { WorkspaceStore } from "../workspace-store"
describe("workspace store tests", () => {
describe("for an empty config", () => {

View File

@ -1,4 +1,4 @@
import { splitArray } from "./splitArray";
import { splitArray } from "../splitArray";
describe("split array on element tests", () => {
test("empty array", () => {
@ -16,7 +16,7 @@ describe("split array on element tests", () => {
test("one elements, in array", () => {
expect(splitArray([1], 1)).toStrictEqual([[], [], true]);
});
test("ten elements, in front array", () => {
expect(splitArray([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 0)).toStrictEqual([[], [1, 2, 3, 4, 5, 6, 7, 8, 9], true]);
});

View File

@ -1,11 +1,11 @@
import { IKubeApiParsed, parseKubeApi } from "./kube-api-parse";
import { IKubeApiParsed, parseKubeApi } from "../kube-api-parse";
interface KubeApi_Parse_Test {
interface KubeApiParseTestData {
url: string;
expected: Required<IKubeApiParsed>;
}
const tests: KubeApi_Parse_Test[] = [
const tests: KubeApiParseTestData[] = [
{
url: "/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions/prometheuses.monitoring.coreos.com",
expected: {
@ -125,11 +125,10 @@ const tests: KubeApi_Parse_Test[] = [
},
];
describe.only("parseApi unit tests", () => {
for (const i in tests) {
const { url: tUrl, expected:tExpect} = tests[i];
test(`test #${parseInt(i)+1}`, () => {
expect(parseKubeApi(tUrl)).toStrictEqual(tExpect);
describe("parseApi unit tests", () => {
for (const { url, expected } of tests) {
test(`testing "${url}"`, () => {
expect(parseKubeApi(url)).toStrictEqual(expected);
});
}
});

View File

@ -4,7 +4,7 @@ import { Input } from "../../input";
import { observable, autorun } from "mobx";
import { observer, disposeOnUnmount } from "mobx-react";
import { SubTitle } from "../../layout/sub-title";
import { isRequired } from "../../input/input.validators";
import { isRequired } from "../../input/input_validators";
interface Props {
cluster: Cluster;
@ -33,7 +33,7 @@ export class ClusterNameSetting extends React.Component<Props> {
render() {
return (
<>
<SubTitle title="Cluster Name"/>
<SubTitle title="Cluster Name" />
<p>Define cluster name.</p>
<Input
theme="round-black"

View File

@ -3,7 +3,7 @@ import { observable, autorun } from "mobx";
import { observer, disposeOnUnmount } from "mobx-react";
import { Cluster } from "../../../../main/cluster";
import { Input } from "../../input";
import { isUrl } from "../../input/input.validators";
import { isUrl } from "../../input/input_validators";
import { SubTitle } from "../../layout/sub-title";
interface Props {
@ -33,7 +33,7 @@ export class ClusterProxySetting extends React.Component<Props> {
render() {
return (
<>
<SubTitle title="HTTP Proxy"/>
<SubTitle title="HTTP Proxy" />
<p>HTTP Proxy server. Used for communicating with Kubernetes API.</p>
<Input
theme="round-black"

View File

@ -8,7 +8,7 @@ import { _i18n } from "../../i18n";
import { Dialog, DialogProps } from "../dialog";
import { Wizard, WizardStep } from "../wizard";
import { Input } from "../input";
import { systemName } from "../input/input.validators";
import { systemName } from "../input/input_validators";
import { IResourceQuotaValues, resourceQuotaApi } from "../../api/endpoints/resource-quota.api";
import { Select } from "../select";
import { Icon } from "../icon";
@ -73,7 +73,7 @@ export class AddQuotaDialog extends React.Component<Props> {
const isCount = quota.startsWith("count/");
const icon = isCompute ? "memory" : isStorage ? "storage" : isCount ? "looks_one" : "";
return {
label: icon ? <span className="nobr"><Icon material={icon}/> {quota}</span> : quota,
label: icon ? <span className="nobr"><Icon material={icon} /> {quota}</span> : quota,
value: quota,
};
});
@ -151,7 +151,7 @@ export class AddQuotaDialog extends React.Component<Props> {
/>
</div>
<SubTitle title={<Trans>Namespace</Trans>}/>
<SubTitle title={<Trans>Namespace</Trans>} />
<NamespaceSelect
value={this.namespace}
placeholder={_i18n._(t`Namespace`)}
@ -160,7 +160,7 @@ export class AddQuotaDialog extends React.Component<Props> {
onChange={({ value }) => this.namespace = value}
/>
<SubTitle title={<Trans>Values</Trans>}/>
<SubTitle title={<Trans>Values</Trans>} />
<div className="flex gaps align-center">
<Select
className="quota-select"
@ -191,7 +191,7 @@ export class AddQuotaDialog extends React.Component<Props> {
<div key={quota} className="quota flex gaps inline align-center">
<div className="name">{quota}</div>
<div className="value">{value}</div>
<Icon material="clear" onClick={() => this.quotas[quota] = ""}/>
<Icon material="clear" onClick={() => this.quotas[quota] = ""} />
</div>
)
})}

View File

@ -8,7 +8,7 @@ import { _i18n } from "../../i18n";
import { Dialog, DialogProps } from "../dialog";
import { Wizard, WizardStep } from "../wizard";
import { Input } from "../input";
import { systemName } from "../input/input.validators";
import { systemName } from "../input/input_validators";
import { Secret, secretsApi, SecretType } from "../../api/endpoints";
import { SubTitle } from "../layout/sub-title";
import { NamespaceSelect } from "../+namespaces/namespace-select";
@ -184,7 +184,7 @@ export class AddSecretDialog extends React.Component<Props> {
<Wizard header={header} done={this.close}>
<WizardStep contentClass="flow column" nextLabel={<Trans>Create</Trans>} next={this.createSecret}>
<div className="secret-name">
<SubTitle title={<Trans>Secret name</Trans>}/>
<SubTitle title={<Trans>Secret name</Trans>} />
<Input
autoFocus required
placeholder={_i18n._(t`Name`)}
@ -194,7 +194,7 @@ export class AddSecretDialog extends React.Component<Props> {
</div>
<div className="flex auto gaps">
<div className="secret-namespace">
<SubTitle title={<Trans>Namespace</Trans>}/>
<SubTitle title={<Trans>Namespace</Trans>} />
<NamespaceSelect
themeName="light"
value={namespace}
@ -202,7 +202,7 @@ export class AddSecretDialog extends React.Component<Props> {
/>
</div>
<div className="secret-type">
<SubTitle title={<Trans>Secret type</Trans>}/>
<SubTitle title={<Trans>Secret type</Trans>} />
<Select
themeName="light"
options={this.types}

View File

@ -10,7 +10,7 @@ import { Wizard, WizardStep } from "../wizard";
import { namespaceStore } from "./namespace.store";
import { Namespace } from "../../api/endpoints";
import { Input } from "../input";
import { systemName } from "../input/input.validators";
import { systemName } from "../input/input_validators";
import { Notifications } from "../notifications";
interface Props extends DialogProps {

View File

@ -1,6 +1,6 @@
import React, { useState } from 'react';
import { Trans } from '@lingui/macro';
import { isPath } from '../input/input.validators';
import { isPath } from '../input/input_validators';
import { Checkbox } from '../checkbox';
import { Input } from '../input';
import { SubTitle } from '../layout/sub-title';

View File

@ -10,7 +10,7 @@ import { Wizard, WizardStep } from "../wizard";
import { SubTitle } from "../layout/sub-title";
import { serviceAccountsStore } from "./service-accounts.store";
import { Input } from "../input";
import { systemName } from "../input/input.validators";
import { systemName } from "../input/input_validators";
import { NamespaceSelect } from "../+namespaces/namespace-select";
import { Notifications } from "../notifications";
import { showDetails } from "../../navigation";
@ -62,14 +62,14 @@ export class CreateServiceAccountDialog extends React.Component<Props> {
>
<Wizard header={header} done={this.close}>
<WizardStep nextLabel={<Trans>Create</Trans>} next={this.createAccount}>
<SubTitle title={<Trans>Account Name</Trans>}/>
<SubTitle title={<Trans>Account Name</Trans>} />
<Input
autoFocus required
placeholder={_i18n._(t`Enter a name`)}
validators={systemName}
value={name} onChange={v => this.name = v.toLowerCase()}
/>
<SubTitle title={<Trans>Namespace</Trans>}/>
<SubTitle title={<Trans>Namespace</Trans>} />
<NamespaceSelect
themeName="light"
value={namespace}

View File

@ -10,7 +10,7 @@ import { CronJob, cronJobApi, jobApi, Job } from "../../api/endpoints";
import { Notifications } from "../notifications";
import { cssNames } from "../../utils";
import { Input } from "../input";
import { systemName, maxLength } from "../input/input.validators";
import { systemName, maxLength } from "../input/input_validators";
interface Props extends Partial<DialogProps> {
}

View File

@ -12,7 +12,7 @@ import { Icon } from "../icon";
import { Input } from "../input";
import { cssNames, prevDefault } from "../../utils";
import { Button } from "../button";
import { isRequired, Validator } from "../input/input.validators";
import { isRequired, Validator } from "../input/input_validators";
@observer
export class Workspaces extends React.Component {

View File

@ -1,4 +1,4 @@
import { isEmail, systemName } from "./input.validators";
import { isEmail, systemName } from "../input_validators";
describe("input validation tests", () => {
describe("isEmail tests", () => {

View File

@ -3,7 +3,7 @@ import "./input.scss";
import React, { DOMAttributes, InputHTMLAttributes, TextareaHTMLAttributes } from "react";
import { autobind, cssNames, debouncePromise } from "../../utils";
import { Icon } from "../icon";
import { conditionalValidators, Validator } from "./input.validators";
import { conditionalValidators, Validator } from "./input_validators";
import isString from "lodash/isString"
import isFunction from "lodash/isFunction"
import isBoolean from "lodash/isBoolean"
@ -288,9 +288,9 @@ export class Input extends React.Component<InputProps, State> {
return (
<div className={className}>
<label className="input-area flex gaps align-center">
{isString(iconLeft) ? <Icon material={iconLeft}/> : iconLeft}
{multiLine ? <textarea {...inputProps as any}/> : <input {...inputProps as any}/>}
{isString(iconRight) ? <Icon material={iconRight}/> : iconRight}
{isString(iconLeft) ? <Icon material={iconLeft} /> : iconLeft}
{multiLine ? <textarea {...inputProps as any} /> : <input {...inputProps as any} />}
{isString(iconRight) ? <Icon material={iconRight} /> : iconRight}
</label>
<div className="input-info flex gaps">
{!valid && dirty && (

View File

@ -1,4 +1,4 @@
import { formatDuration } from "./formatDuration";
import { formatDuration } from "../formatDuration";
const second = 1000;
const minute = 60 * second;
@ -9,34 +9,34 @@ const week = 7 * day;
describe("human format durations", () => {
test("long formatted durations less than 24 hours long shouldn't have a 'd' component", () => {
const res = formatDuration(19 * 60 * 60 * 1000, false);
expect(res).not.toContain("d");
expect(res).toBe("19h");
});
test("long formatted durations more than a week have correct day count", () => {
const res = formatDuration(2 * week + 2 * day, false);
expect(res).toBe("2w 2d");
});
test("durations > 1/2 week shouldn't show 1w has passed", () => {
const res = formatDuration(5 * 24 * 60 * 60 * 1000, false);
expect(res).not.toContain("w");
expect(res).toBe("5d");
});
test("durations shouldn't include zero magnitude parts", () => {
const res = formatDuration(6 * day + 2 * minute, false);
expect(res).not.toContain("h");
expect(res).toBe("6d 2m");
});
test("seconds are ignored unless they are significant (< 1m)", () => {
const insignificant = formatDuration(1 * hour + 2 * minute + 31 * second, false);
expect(insignificant).not.toContain("s");
expect(insignificant).toBe("1h 2m");

View File

@ -1,4 +1,4 @@
import { metricUnitsToNumber } from "./metricUnitsToNumber";
import { metricUnitsToNumber } from "../metricUnitsToNumber";
describe("metricUnitsToNumber tests", () => {
test("plain number", () => {