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"; import { Application } from "spectron";
let appPath = "" const AppPaths: Partial<Record<NodeJS.Platform, string>> = {
switch(process.platform) { "win32": "./dist/win-unpacked/Lens.exe",
case "win32": "linux": "./dist/linux-unpacked/kontena-lens",
appPath = "./dist/win-unpacked/Lens.exe" "darwin": "./dist/mac/Lens.app/Contents/MacOS/Lens",
break
case "linux":
appPath = "./dist/linux-unpacked/kontena-lens"
break
case "darwin":
appPath = "./dist/mac/Lens.app/Contents/MacOS/Lens"
break
} }
export function setup(): Application { export function setup(): Application {
return new Application({ return new Application({
// path to electron app // path to electron app
args: [], args: [],
path: appPath, path: AppPaths[process.platform],
startTimeout: 30000, startTimeout: 30000,
waitTimeout: 30000, waitTimeout: 30000,
chromeDriverArgs: ['remote-debugging-port=9222'], chromeDriverArgs: ['remote-debugging-port=9222'],
@ -32,7 +25,7 @@ export async function tearDown(app: Application) {
await app.stop() await app.stop()
try { try {
process.kill(pid, 0); process.kill(pid, 0);
} catch(e) { } catch (e) {
return 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." #~ 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." #~ 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" msgid "<0>{0}</0> successfully created"
msgstr "<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>)" #~ msgid "A HTTP proxy server URL (format: http://<address>:<port>)"
#~ msgstr "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." 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." 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" msgid "Active"
msgstr "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 #: src/renderer/components/cluster-manager/clusters-menu.tsx:130
msgid "Add Cluster" msgid "Add Cluster"
msgstr "Add Cluster" msgstr "Add Cluster"
@ -112,7 +112,7 @@ msgstr "Add bindings to {name}"
#~ msgid "Add cluster" #~ msgid "Add cluster"
#~ msgstr "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)" msgid "Add cluster(s)"
msgstr "Add cluster(s)" msgstr "Add cluster(s)"
@ -273,7 +273,7 @@ msgstr "App Version"
msgid "App crash at <0>{pageUrl}</0>" msgid "App crash at <0>{pageUrl}</0>"
msgstr "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.." msgid "Applying.."
msgstr "Applying.." msgstr "Applying.."
@ -404,7 +404,7 @@ msgstr "CPU:"
#: src/renderer/components/+workspaces/workspaces.tsx:133 #: src/renderer/components/+workspaces/workspaces.tsx:133
#: src/renderer/components/confirm-dialog/confirm-dialog.tsx:44 #: 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 #: src/renderer/components/wizard/wizard.tsx:130
msgid "Cancel" msgid "Cancel"
msgstr "Cancel" msgstr "Cancel"
@ -440,7 +440,7 @@ msgstr "Chart"
msgid "Chart Release <0>{0}</0> successfully created." msgid "Chart Release <0>{0}</0> successfully created."
msgstr "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}" msgid "Chart: {0}"
msgstr "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/add-role-dialog.tsx:73
#: src/renderer/components/+user-management-roles-bindings/add-role-binding-dialog.tsx:212 #: 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/+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" msgid "Create"
msgstr "Create" msgstr "Create"
@ -691,7 +691,7 @@ msgstr "Create new Secret"
msgid "Create new Service Account" msgid "Create new Service Account"
msgstr "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" msgid "Create resource"
msgstr "Create resource" msgstr "Create resource"
@ -783,8 +783,8 @@ msgid "Default Runtime Class Name"
msgstr "Default Runtime Class Name" msgstr "Default Runtime Class Name"
#: src/renderer/components/+preferences/kubectl-binaries.tsx:30 #: src/renderer/components/+preferences/kubectl-binaries.tsx:30
msgid "Default:" #~ msgid "Default:"
msgstr "Default:" #~ msgstr "Default:"
#: src/renderer/components/+custom-resources/custom-resources.tsx:22 #: src/renderer/components/+custom-resources/custom-resources.tsx:22
msgid "Definitions" msgid "Definitions"
@ -848,15 +848,19 @@ msgstr "Domains"
msgid "Download file" msgid "Download file"
msgstr "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" msgid "Download kubectl binaries"
msgstr "Download kubectl binaries" msgstr "Download kubectl binaries"
#: src/renderer/components/+preferences/kubectl-binaries.tsx:37 #: 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 "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" msgid "Download mirror for kubectl"
msgstr "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" #~ msgid "Excluded items with \"system:\" prefix"
#~ msgstr "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" msgid "Exit full size mode"
msgstr "Exit full size mode" msgstr "Exit full size mode"
@ -985,7 +989,7 @@ msgstr "Finalizers"
msgid "First seen" msgid "First seen"
msgstr "First seen" msgstr "First seen"
#: src/renderer/components/dock/dock.tsx:116 #: src/renderer/components/dock/dock.tsx:98
msgid "Fit to window" msgid "Fit to window"
msgstr "Fit to window" msgstr "Fit to window"
@ -1073,7 +1077,7 @@ msgstr "Hide"
msgid "High number of replicas may cause cluster performance issues" msgid "High number of replicas may cause cluster performance issues"
msgstr "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" msgid "Home"
msgstr "Home" msgstr "Home"
@ -1128,7 +1132,7 @@ msgstr "Image"
msgid "ImagePullPolicy" msgid "ImagePullPolicy"
msgstr "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" msgid "ImagePullSecrets"
msgstr "ImagePullSecrets" msgstr "ImagePullSecrets"
@ -1153,8 +1157,8 @@ msgstr "Ingresses"
msgid "Init Containers" msgid "Init Containers"
msgstr "Init Containers" msgstr "Init Containers"
#: src/renderer/components/+apps-helm-charts/helm-chart-details.tsx:76 #: src/renderer/components/+apps-helm-charts/helm-chart-details.tsx:83
#: src/renderer/components/dock/install-chart.tsx:128 #: src/renderer/components/dock/install-chart.tsx:127
msgid "Install" msgid "Install"
msgstr "Install" msgstr "Install"
@ -1162,15 +1166,15 @@ msgstr "Install"
msgid "Installation complete!" msgid "Installation complete!"
msgstr "Installation complete!" msgstr "Installation complete!"
#: src/renderer/components/dock/install-chart.tsx:128 #: src/renderer/components/dock/install-chart.tsx:127
msgid "Installing..." msgid "Installing..."
msgstr "Installing..." msgstr "Installing..."
#: src/renderer/components/input/input.validators.ts:50 #: src/renderer/components/input/input_validators.ts:50
msgid "Invalid account ID" msgid "Invalid account ID"
msgstr "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" msgid "Invalid number"
msgstr "Invalid number" msgstr "Invalid number"
@ -1231,13 +1235,13 @@ msgstr "Key Size"
msgid "Keys" msgid "Keys"
msgstr "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" msgid "Keywords"
msgstr "Keywords" msgstr "Keywords"
#: src/renderer/components/+events/event-details.tsx:57 #: src/renderer/components/+events/event-details.tsx:57
#: src/renderer/components/+user-management-roles-bindings/role-binding-details.tsx:79 #: 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" msgid "Kind"
msgstr "Kind" msgstr "Kind"
@ -1249,7 +1253,7 @@ msgstr "Kubeconfig"
msgid "Kubeconfig File" msgid "Kubeconfig File"
msgstr "Kubeconfig File" msgstr "Kubeconfig File"
#: src/renderer/components/+preferences/kubectl-binaries.tsx:35 #: src/renderer/components/+preferences/kubectl-binaries.tsx:23
msgid "Kubectl Binary" msgid "Kubectl Binary"
msgstr "Kubectl Binary" msgstr "Kubectl Binary"
@ -1343,7 +1347,7 @@ msgstr "Logs"
msgid "Logs copied to clipboard." msgid "Logs copied to clipboard."
msgstr "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" msgid "Maintainers"
msgstr "Maintainers" msgstr "Maintainers"
@ -1369,7 +1373,7 @@ msgstr "Max Pods"
msgid "Max Unavailable" msgid "Max Unavailable"
msgstr "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}" msgid "Maximum length is {maxLength}"
msgstr "Maximum length is {maxLength}" msgstr "Maximum length is {maxLength}"
@ -1441,11 +1445,11 @@ msgstr "Min Available"
msgid "Min Pods" msgid "Min Pods"
msgstr "Min Pods" msgstr "Min Pods"
#: src/renderer/components/dock/dock.tsx:117 #: src/renderer/components/dock/dock.tsx:99
msgid "Minimize" msgid "Minimize"
msgstr "Minimize" msgstr "Minimize"
#: src/renderer/components/input/input.validators.ts:36 #: src/renderer/components/input/input_validators.ts:36
msgid "Minimum length is {minLength}" msgid "Minimum length is {minLength}"
msgstr "Minimum length is {minLength}" msgstr "Minimum length is {minLength}"
@ -1454,7 +1458,7 @@ msgstr "Minimum length is {minLength}"
msgid "Mount Options" msgid "Mount Options"
msgstr "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" msgid "Mountable secrets"
msgstr "Mountable secrets" msgstr "Mountable secrets"
@ -1510,7 +1514,7 @@ msgstr "Mounts"
#: src/renderer/components/+workloads-replicasets/replicasets.tsx:50 #: src/renderer/components/+workloads-replicasets/replicasets.tsx:50
#: src/renderer/components/+workloads-statefulsets/statefulsets.tsx:40 #: src/renderer/components/+workloads-statefulsets/statefulsets.tsx:40
#: src/renderer/components/+workspaces/workspaces.tsx:130 #: 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 #: src/renderer/components/kube-object/kube-object-meta.tsx:20
msgid "Name" msgid "Name"
msgstr "Name" msgstr "Name"
@ -1556,7 +1560,7 @@ msgstr "Names"
#: src/renderer/components/+workloads-jobs/jobs.tsx:38 #: src/renderer/components/+workloads-jobs/jobs.tsx:38
#: src/renderer/components/+workloads-pods/pods.tsx:76 #: src/renderer/components/+workloads-pods/pods.tsx:76
#: src/renderer/components/+workloads-statefulsets/statefulsets.tsx:41 #: 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/install-chart.tsx:122
#: src/renderer/components/dock/upgrade-chart.tsx:98 #: src/renderer/components/dock/upgrade-chart.tsx:98
#: src/renderer/components/item-object-list/page-filters-select.tsx:57 #: 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" msgid "New logs since opening the dialog"
msgstr "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" msgid "New tab"
msgstr "New tab" msgstr "New tab"
@ -1734,7 +1738,7 @@ msgstr "Ok"
msgid "Ok, got it!" msgid "Ok, got it!"
msgstr "Ok, got it!" msgstr "Ok, got it!"
#: src/renderer/components/dock/dock.tsx:117 #: src/renderer/components/dock/dock.tsx:99
msgid "Open" msgid "Open"
msgstr "Open" msgstr "Open"
@ -1939,7 +1943,7 @@ msgstr "Provisioner"
msgid "Proxy is used only for non-cluster communication." msgid "Proxy is used only for non-cluster communication."
msgstr "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" msgid "Proxy settings"
msgstr "Proxy settings" msgstr "Proxy settings"
@ -2264,7 +2268,7 @@ msgstr "Runtime Class"
#: src/renderer/components/+config-secrets/secret-details.tsx:97 #: src/renderer/components/+config-secrets/secret-details.tsx:97
#: src/renderer/components/+workloads-pods/pod-logs-dialog.tsx:216 #: src/renderer/components/+workloads-pods/pod-logs-dialog.tsx:216
#: src/renderer/components/+workspaces/workspaces.tsx:132 #: 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" msgid "Save"
msgstr "Save" msgstr "Save"
@ -2318,6 +2322,10 @@ msgstr "Secret"
msgid "Secret Name" msgid "Secret Name"
msgstr "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 #: src/renderer/components/+config-secrets/add-secret-dialog.tsx:147
msgid "Secret name" msgid "Secret name"
msgstr "Secret name" msgstr "Secret name"
@ -2472,7 +2480,7 @@ msgid "Shell"
msgstr "Shell" msgstr "Shell"
#: src/renderer/components/+config-secrets/secret-details.tsx:93 #: 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/+workloads-pods/pod-logs-dialog.tsx:215
#: src/renderer/components/drawer/drawer-param-toggler.tsx:19 #: src/renderer/components/drawer/drawer-param-toggler.tsx:19
msgid "Show" msgid "Show"
@ -2580,12 +2588,12 @@ msgstr "Strategy Type"
msgid "Sub-object" msgid "Sub-object"
msgstr "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 #: src/renderer/components/wizard/wizard.tsx:131
msgid "Submit" msgid "Submit"
msgstr "Submit" msgstr "Submit"
#: src/renderer/components/dock/info-panel.tsx:105 #: src/renderer/components/dock/info-panel.tsx:94
msgid "Submitting.." msgid "Submitting.."
msgstr "Submitting.." msgstr "Submitting.."
@ -2627,10 +2635,14 @@ msgstr "Telemetry & usage data is collected to continuously improve the Lens exp
msgid "Terminal" msgid "Terminal"
msgstr "Terminal" msgstr "Terminal"
#: src/renderer/components/dock/dock.tsx:107 #: src/renderer/components/dock/dock.tsx:89
msgid "Terminal session" msgid "Terminal session"
msgstr "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 #: src/renderer/components/+workloads-pods/pod-logs-dialog.tsx:226
msgid "There are no logs available for container." msgid "There are no logs available for container."
msgstr "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." msgid "There are no logs available."
msgstr "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" msgid "This field is required"
msgstr "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" msgid "This field must be a valid path"
msgstr "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." 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." 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" msgid "Tokens"
msgstr "Tokens" msgstr "Tokens"
@ -2730,12 +2742,12 @@ msgstr "Update"
msgid "Updated" msgid "Updated"
msgstr "Updated" msgstr "Updated"
#: src/renderer/components/dock/upgrade-chart.tsx:105 #: src/renderer/components/dock/upgrade-chart.tsx:104
msgid "Updating.." msgid "Updating.."
msgstr "Updating.." msgstr "Updating.."
#: src/renderer/components/+apps-releases/release-details.tsx:176 #: 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" msgid "Upgrade"
msgstr "Upgrade" msgstr "Upgrade"
@ -2799,7 +2811,7 @@ msgstr "Values"
msgid "Verbs" msgid "Verbs"
msgstr "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-helm-charts/helm-charts.tsx:66
#: src/renderer/components/+apps-releases/release-details.tsx:185 #: src/renderer/components/+apps-releases/release-details.tsx:185
#: src/renderer/components/+apps-releases/releases.tsx:91 #: 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." msgid "Workspaces are used to organize number of clusters into logical groups."
msgstr "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" msgid "Wrong email format"
msgstr "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" msgid "Wrong url format"
msgstr "Wrong url format" msgstr "Wrong url format"
@ -2953,7 +2965,7 @@ msgstr "singular"
msgid "timestamps" msgid "timestamps"
msgstr "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}}" msgid "{0, plural, one {Resource} other {Resources}}"
msgstr "{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>}}" 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>}}" 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" msgid "{submitLabel} & Close"
msgstr "{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." #~ msgid "<0>Your browser does not support all Lens features. </0> Please consider using another browser."
#~ msgstr "" #~ msgstr ""
#: src/renderer/components/dock/create-resource.tsx:56 #: src/renderer/components/dock/create-resource.tsx:58
msgid "<0>{0}</0> successfully created" msgid "<0>{0}</0> successfully created"
msgstr "" msgstr ""
@ -57,7 +57,7 @@ msgstr ""
#~ msgid "A HTTP proxy server URL (format: http://<address>:<port>)" #~ msgid "A HTTP proxy server URL (format: http://<address>:<port>)"
#~ msgstr "" #~ 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." msgid "A System Name must be lowercase DNS labels separated by dots. DNS labels are alphanumerics and dashes enclosed by alphanumerics."
msgstr "" msgstr ""
@ -87,7 +87,7 @@ msgstr ""
msgid "Active" msgid "Active"
msgstr "" 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 #: src/renderer/components/cluster-manager/clusters-menu.tsx:130
msgid "Add Cluster" msgid "Add Cluster"
msgstr "" msgstr ""
@ -112,7 +112,7 @@ msgstr ""
#~ msgid "Add cluster" #~ msgid "Add cluster"
#~ msgstr "" #~ msgstr ""
#: src/renderer/components/+add-cluster/add-cluster.tsx:305 #: src/renderer/components/+add-cluster/add-cluster.tsx:306
msgid "Add cluster(s)" msgid "Add cluster(s)"
msgstr "" msgstr ""
@ -273,7 +273,7 @@ msgstr ""
msgid "App crash at <0>{pageUrl}</0>" msgid "App crash at <0>{pageUrl}</0>"
msgstr "" msgstr ""
#: src/renderer/components/dock/edit-resource.tsx:88 #: src/renderer/components/dock/edit-resource.tsx:87
msgid "Applying.." msgid "Applying.."
msgstr "" msgstr ""
@ -404,7 +404,7 @@ msgstr ""
#: src/renderer/components/+workspaces/workspaces.tsx:133 #: src/renderer/components/+workspaces/workspaces.tsx:133
#: src/renderer/components/confirm-dialog/confirm-dialog.tsx:44 #: 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 #: src/renderer/components/wizard/wizard.tsx:130
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr ""
@ -440,7 +440,7 @@ msgstr ""
msgid "Chart Release <0>{0}</0> successfully created." msgid "Chart Release <0>{0}</0> successfully created."
msgstr "" 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}" msgid "Chart: {0}"
msgstr "" msgstr ""
@ -643,7 +643,7 @@ msgstr ""
#: src/renderer/components/+user-management-roles/add-role-dialog.tsx:73 #: 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-roles-bindings/add-role-binding-dialog.tsx:212
#: src/renderer/components/+user-management-service-accounts/create-service-account-dialog.tsx:76 #: 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" msgid "Create"
msgstr "" msgstr ""
@ -687,7 +687,7 @@ msgstr ""
msgid "Create new Service Account" msgid "Create new Service Account"
msgstr "" msgstr ""
#: src/renderer/components/dock/dock.tsx:111 #: src/renderer/components/dock/dock.tsx:93
msgid "Create resource" msgid "Create resource"
msgstr "" msgstr ""
@ -779,8 +779,8 @@ msgid "Default Runtime Class Name"
msgstr "" msgstr ""
#: src/renderer/components/+preferences/kubectl-binaries.tsx:30 #: src/renderer/components/+preferences/kubectl-binaries.tsx:30
msgid "Default:" #~ msgid "Default:"
msgstr "" #~ msgstr ""
#: src/renderer/components/+custom-resources/custom-resources.tsx:22 #: src/renderer/components/+custom-resources/custom-resources.tsx:22
msgid "Definitions" msgid "Definitions"
@ -844,15 +844,19 @@ msgstr ""
msgid "Download file" msgid "Download file"
msgstr "" msgstr ""
#: src/renderer/components/+preferences/kubectl-binaries.tsx:39 #: src/renderer/components/+preferences/kubectl-binaries.tsx:24
msgid "Download kubectl binaries" msgid "Download kubectl binaries"
msgstr "" msgstr ""
#: src/renderer/components/+preferences/kubectl-binaries.tsx:37 #: 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 "" msgstr ""
#: src/renderer/components/+preferences/kubectl-binaries.tsx:41 #: src/renderer/components/+preferences/kubectl-binaries.tsx:29
msgid "Download mirror for kubectl" msgid "Download mirror for kubectl"
msgstr "" msgstr ""
@ -935,7 +939,7 @@ msgstr ""
msgid "Everything is fine in the Cluster" msgid "Everything is fine in the Cluster"
msgstr "" msgstr ""
#: src/renderer/components/dock/dock.tsx:116 #: src/renderer/components/dock/dock.tsx:98
msgid "Exit full size mode" msgid "Exit full size mode"
msgstr "" msgstr ""
@ -976,7 +980,7 @@ msgstr ""
msgid "First seen" msgid "First seen"
msgstr "" msgstr ""
#: src/renderer/components/dock/dock.tsx:116 #: src/renderer/components/dock/dock.tsx:98
msgid "Fit to window" msgid "Fit to window"
msgstr "" msgstr ""
@ -1064,7 +1068,7 @@ msgstr ""
msgid "High number of replicas may cause cluster performance issues" msgid "High number of replicas may cause cluster performance issues"
msgstr "" 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" msgid "Home"
msgstr "" msgstr ""
@ -1119,7 +1123,7 @@ msgstr ""
msgid "ImagePullPolicy" msgid "ImagePullPolicy"
msgstr "" 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" msgid "ImagePullSecrets"
msgstr "" msgstr ""
@ -1144,8 +1148,8 @@ msgstr ""
msgid "Init Containers" msgid "Init Containers"
msgstr "" msgstr ""
#: src/renderer/components/+apps-helm-charts/helm-chart-details.tsx:76 #: src/renderer/components/+apps-helm-charts/helm-chart-details.tsx:83
#: src/renderer/components/dock/install-chart.tsx:128 #: src/renderer/components/dock/install-chart.tsx:127
msgid "Install" msgid "Install"
msgstr "" msgstr ""
@ -1153,15 +1157,15 @@ msgstr ""
msgid "Installation complete!" msgid "Installation complete!"
msgstr "" msgstr ""
#: src/renderer/components/dock/install-chart.tsx:128 #: src/renderer/components/dock/install-chart.tsx:127
msgid "Installing..." msgid "Installing..."
msgstr "" msgstr ""
#: src/renderer/components/input/input.validators.ts:50 #: src/renderer/components/input/input_validators.ts:50
msgid "Invalid account ID" msgid "Invalid account ID"
msgstr "" msgstr ""
#: src/renderer/components/input/input.validators.ts:16 #: src/renderer/components/input/input_validators.ts:16
msgid "Invalid number" msgid "Invalid number"
msgstr "" msgstr ""
@ -1222,13 +1226,13 @@ msgstr ""
msgid "Keys" msgid "Keys"
msgstr "" 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" msgid "Keywords"
msgstr "" msgstr ""
#: src/renderer/components/+events/event-details.tsx:57 #: src/renderer/components/+events/event-details.tsx:57
#: src/renderer/components/+user-management-roles-bindings/role-binding-details.tsx:79 #: 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" msgid "Kind"
msgstr "" msgstr ""
@ -1240,7 +1244,7 @@ msgstr ""
msgid "Kubeconfig File" msgid "Kubeconfig File"
msgstr "" msgstr ""
#: src/renderer/components/+preferences/kubectl-binaries.tsx:35 #: src/renderer/components/+preferences/kubectl-binaries.tsx:23
msgid "Kubectl Binary" msgid "Kubectl Binary"
msgstr "" msgstr ""
@ -1334,7 +1338,7 @@ msgstr ""
msgid "Logs copied to clipboard." msgid "Logs copied to clipboard."
msgstr "" 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" msgid "Maintainers"
msgstr "" msgstr ""
@ -1360,7 +1364,7 @@ msgstr ""
msgid "Max Unavailable" msgid "Max Unavailable"
msgstr "" msgstr ""
#: src/renderer/components/input/input.validators.ts:41 #: src/renderer/components/input/input_validators.ts:41
msgid "Maximum length is {maxLength}" msgid "Maximum length is {maxLength}"
msgstr "" msgstr ""
@ -1432,11 +1436,11 @@ msgstr ""
msgid "Min Pods" msgid "Min Pods"
msgstr "" msgstr ""
#: src/renderer/components/dock/dock.tsx:117 #: src/renderer/components/dock/dock.tsx:99
msgid "Minimize" msgid "Minimize"
msgstr "" msgstr ""
#: src/renderer/components/input/input.validators.ts:36 #: src/renderer/components/input/input_validators.ts:36
msgid "Minimum length is {minLength}" msgid "Minimum length is {minLength}"
msgstr "" msgstr ""
@ -1445,7 +1449,7 @@ msgstr ""
msgid "Mount Options" msgid "Mount Options"
msgstr "" 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" msgid "Mountable secrets"
msgstr "" msgstr ""
@ -1501,7 +1505,7 @@ msgstr ""
#: src/renderer/components/+workloads-replicasets/replicasets.tsx:50 #: src/renderer/components/+workloads-replicasets/replicasets.tsx:50
#: src/renderer/components/+workloads-statefulsets/statefulsets.tsx:40 #: src/renderer/components/+workloads-statefulsets/statefulsets.tsx:40
#: src/renderer/components/+workspaces/workspaces.tsx:130 #: 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 #: src/renderer/components/kube-object/kube-object-meta.tsx:20
msgid "Name" msgid "Name"
msgstr "" msgstr ""
@ -1547,7 +1551,7 @@ msgstr ""
#: src/renderer/components/+workloads-jobs/jobs.tsx:38 #: src/renderer/components/+workloads-jobs/jobs.tsx:38
#: src/renderer/components/+workloads-pods/pods.tsx:76 #: src/renderer/components/+workloads-pods/pods.tsx:76
#: src/renderer/components/+workloads-statefulsets/statefulsets.tsx:41 #: 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/install-chart.tsx:122
#: src/renderer/components/dock/upgrade-chart.tsx:98 #: src/renderer/components/dock/upgrade-chart.tsx:98
#: src/renderer/components/item-object-list/page-filters-select.tsx:57 #: src/renderer/components/item-object-list/page-filters-select.tsx:57
@ -1591,7 +1595,7 @@ msgstr ""
msgid "New logs since opening the dialog" msgid "New logs since opening the dialog"
msgstr "" msgstr ""
#: src/renderer/components/dock/dock.tsx:104 #: src/renderer/components/dock/dock.tsx:86
msgid "New tab" msgid "New tab"
msgstr "" msgstr ""
@ -1717,7 +1721,7 @@ msgstr ""
msgid "Ok, got it!" msgid "Ok, got it!"
msgstr "" msgstr ""
#: src/renderer/components/dock/dock.tsx:117 #: src/renderer/components/dock/dock.tsx:99
msgid "Open" msgid "Open"
msgstr "" msgstr ""
@ -1922,7 +1926,7 @@ msgstr ""
msgid "Proxy is used only for non-cluster communication." msgid "Proxy is used only for non-cluster communication."
msgstr "" msgstr ""
#: src/renderer/components/+add-cluster/add-cluster.tsx:293 #: src/renderer/components/+add-cluster/add-cluster.tsx:294
msgid "Proxy settings" msgid "Proxy settings"
msgstr "" msgstr ""
@ -2247,7 +2251,7 @@ msgstr ""
#: src/renderer/components/+config-secrets/secret-details.tsx:97 #: src/renderer/components/+config-secrets/secret-details.tsx:97
#: src/renderer/components/+workloads-pods/pod-logs-dialog.tsx:216 #: src/renderer/components/+workloads-pods/pod-logs-dialog.tsx:216
#: src/renderer/components/+workspaces/workspaces.tsx:132 #: 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" msgid "Save"
msgstr "" msgstr ""
@ -2301,6 +2305,10 @@ msgstr ""
msgid "Secret Name" msgid "Secret Name"
msgstr "" 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 #: src/renderer/components/+config-secrets/add-secret-dialog.tsx:147
msgid "Secret name" msgid "Secret name"
msgstr "" msgstr ""
@ -2455,7 +2463,7 @@ msgid "Shell"
msgstr "" msgstr ""
#: src/renderer/components/+config-secrets/secret-details.tsx:93 #: 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/+workloads-pods/pod-logs-dialog.tsx:215
#: src/renderer/components/drawer/drawer-param-toggler.tsx:19 #: src/renderer/components/drawer/drawer-param-toggler.tsx:19
msgid "Show" msgid "Show"
@ -2563,12 +2571,12 @@ msgstr ""
msgid "Sub-object" msgid "Sub-object"
msgstr "" msgstr ""
#: src/renderer/components/dock/info-panel.tsx:104 #: src/renderer/components/dock/info-panel.tsx:93
#: src/renderer/components/wizard/wizard.tsx:131 #: src/renderer/components/wizard/wizard.tsx:131
msgid "Submit" msgid "Submit"
msgstr "" msgstr ""
#: src/renderer/components/dock/info-panel.tsx:105 #: src/renderer/components/dock/info-panel.tsx:94
msgid "Submitting.." msgid "Submitting.."
msgstr "" msgstr ""
@ -2610,10 +2618,14 @@ msgstr ""
msgid "Terminal" msgid "Terminal"
msgstr "" msgstr ""
#: src/renderer/components/dock/dock.tsx:107 #: src/renderer/components/dock/dock.tsx:89
msgid "Terminal session" msgid "Terminal session"
msgstr "" 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 #: src/renderer/components/+workloads-pods/pod-logs-dialog.tsx:226
msgid "There are no logs available for container." msgid "There are no logs available for container."
msgstr "" msgstr ""
@ -2622,11 +2634,11 @@ msgstr ""
msgid "There are no logs available." msgid "There are no logs available."
msgstr "" msgstr ""
#: src/renderer/components/input/input.validators.ts:6 #: src/renderer/components/input/input_validators.ts:6
msgid "This field is required" msgid "This field is required"
msgstr "" 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" msgid "This field must be a valid path"
msgstr "" msgstr ""
@ -2646,7 +2658,7 @@ msgstr ""
msgid "To help us improve the product please report bugs to {slackLink} community or {githubLink} issues tracker." msgid "To help us improve the product please report bugs to {slackLink} community or {githubLink} issues tracker."
msgstr "" 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" msgid "Tokens"
msgstr "" msgstr ""
@ -2713,12 +2725,12 @@ msgstr ""
msgid "Updated" msgid "Updated"
msgstr "" msgstr ""
#: src/renderer/components/dock/upgrade-chart.tsx:105 #: src/renderer/components/dock/upgrade-chart.tsx:104
msgid "Updating.." msgid "Updating.."
msgstr "" msgstr ""
#: src/renderer/components/+apps-releases/release-details.tsx:176 #: 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" msgid "Upgrade"
msgstr "" msgstr ""
@ -2782,7 +2794,7 @@ msgstr ""
msgid "Verbs" msgid "Verbs"
msgstr "" 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-helm-charts/helm-charts.tsx:66
#: src/renderer/components/+apps-releases/release-details.tsx:185 #: src/renderer/components/+apps-releases/release-details.tsx:185
#: src/renderer/components/+apps-releases/releases.tsx:91 #: 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." msgid "Workspaces are used to organize number of clusters into logical groups."
msgstr "" msgstr ""
#: src/renderer/components/input/input.validators.ts:11 #: src/renderer/components/input/input_validators.ts:11
msgid "Wrong email format" msgid "Wrong email format"
msgstr "" msgstr ""
#: src/renderer/components/input/input.validators.ts:26 #: src/renderer/components/input/input_validators.ts:26
msgid "Wrong url format" msgid "Wrong url format"
msgstr "" msgstr ""
@ -2936,7 +2948,7 @@ msgstr ""
msgid "timestamps" msgid "timestamps"
msgstr "" msgstr ""
#: src/renderer/components/dock/create-resource.tsx:55 #: src/renderer/components/dock/create-resource.tsx:57
msgid "{0, plural, one {Resource} other {Resources}}" msgid "{0, plural, one {Resource} other {Resources}}"
msgstr "" 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>}}" msgid "{selectedCount, plural, one {<0>Remove item <1>{selectedNames}</1>?</0>} other {<2>Remove <3>{selectedCount}</3> items <4>{selectedNames}</4> {tail}?</2>}}"
msgstr "" msgstr ""
#: src/renderer/components/dock/info-panel.tsx:99 #: src/renderer/components/dock/info-panel.tsx:88
msgid "{submitLabel} & Close" msgid "{submitLabel} & Close"
msgstr "" 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." #~ msgid "<0>Your browser does not support all Lens features. </0> Please consider using another browser."
#~ msgstr "<0>Ваш браузер не поддерживает все возможности Lens. </0> Пожалуйста рассмотрите использование другого современного браузера." #~ 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" msgid "<0>{0}</0> successfully created"
msgstr "" msgstr ""
@ -58,7 +58,7 @@ msgstr ""
#~ msgid "A HTTP proxy server URL (format: http://<address>:<port>)" #~ msgid "A HTTP proxy server URL (format: http://<address>:<port>)"
#~ msgstr "" #~ 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." msgid "A System Name must be lowercase DNS labels separated by dots. DNS labels are alphanumerics and dashes enclosed by alphanumerics."
msgstr "Это поле может содержать только латинские буквы в нижнем регистре, номера и дефис." msgstr "Это поле может содержать только латинские буквы в нижнем регистре, номера и дефис."
@ -88,7 +88,7 @@ msgstr "Название аккаунта"
msgid "Active" msgid "Active"
msgstr "Активный" 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 #: src/renderer/components/cluster-manager/clusters-menu.tsx:130
msgid "Add Cluster" msgid "Add Cluster"
msgstr "" msgstr ""
@ -113,7 +113,7 @@ msgstr "Добавить привязки к {name}"
#~ msgid "Add cluster" #~ msgid "Add cluster"
#~ msgstr "" #~ msgstr ""
#: src/renderer/components/+add-cluster/add-cluster.tsx:305 #: src/renderer/components/+add-cluster/add-cluster.tsx:306
msgid "Add cluster(s)" msgid "Add cluster(s)"
msgstr "" msgstr ""
@ -274,7 +274,7 @@ msgstr "Версия приложения"
msgid "App crash at <0>{pageUrl}</0>" msgid "App crash at <0>{pageUrl}</0>"
msgstr "Сбой работы приложения на <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.." msgid "Applying.."
msgstr "Применение.." msgstr "Применение.."
@ -405,7 +405,7 @@ msgstr "CPU:"
#: src/renderer/components/+workspaces/workspaces.tsx:133 #: src/renderer/components/+workspaces/workspaces.tsx:133
#: src/renderer/components/confirm-dialog/confirm-dialog.tsx:44 #: 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 #: src/renderer/components/wizard/wizard.tsx:130
msgid "Cancel" msgid "Cancel"
msgstr "Отмена" msgstr "Отмена"
@ -441,7 +441,7 @@ msgstr "Чарт"
msgid "Chart Release <0>{0}</0> successfully created." msgid "Chart Release <0>{0}</0> successfully created."
msgstr "Релиз чарта <0>{0}</0> успешно создан." 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}" msgid "Chart: {0}"
msgstr "Чарт: {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/add-role-dialog.tsx:73
#: src/renderer/components/+user-management-roles-bindings/add-role-binding-dialog.tsx:212 #: 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/+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" msgid "Create"
msgstr "Создать" msgstr "Создать"
@ -692,7 +692,7 @@ msgstr "Создать новый секрет"
msgid "Create new Service Account" msgid "Create new Service Account"
msgstr "Создать новый Service Account" msgstr "Создать новый Service Account"
#: src/renderer/components/dock/dock.tsx:111 #: src/renderer/components/dock/dock.tsx:93
msgid "Create resource" msgid "Create resource"
msgstr "Создать ресурс" msgstr "Создать ресурс"
@ -784,8 +784,8 @@ msgid "Default Runtime Class Name"
msgstr "" msgstr ""
#: src/renderer/components/+preferences/kubectl-binaries.tsx:30 #: src/renderer/components/+preferences/kubectl-binaries.tsx:30
msgid "Default:" #~ msgid "Default:"
msgstr "" #~ msgstr ""
#: src/renderer/components/+custom-resources/custom-resources.tsx:22 #: src/renderer/components/+custom-resources/custom-resources.tsx:22
msgid "Definitions" msgid "Definitions"
@ -849,15 +849,19 @@ msgstr "Домены"
msgid "Download file" msgid "Download file"
msgstr "Скачать файл" msgstr "Скачать файл"
#: src/renderer/components/+preferences/kubectl-binaries.tsx:39 #: src/renderer/components/+preferences/kubectl-binaries.tsx:24
msgid "Download kubectl binaries" msgid "Download kubectl binaries"
msgstr "" msgstr ""
#: src/renderer/components/+preferences/kubectl-binaries.tsx:37 #: 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 "" msgstr ""
#: src/renderer/components/+preferences/kubectl-binaries.tsx:41 #: src/renderer/components/+preferences/kubectl-binaries.tsx:29
msgid "Download mirror for kubectl" msgid "Download mirror for kubectl"
msgstr "" msgstr ""
@ -945,7 +949,7 @@ msgstr "В кластере все в порядке"
#~ msgid "Excluded items with \"system:\" prefix" #~ msgid "Excluded items with \"system:\" prefix"
#~ msgstr "За исключением объектов с префиксом “system:”" #~ msgstr "За исключением объектов с префиксом “system:”"
#: src/renderer/components/dock/dock.tsx:116 #: src/renderer/components/dock/dock.tsx:98
msgid "Exit full size mode" msgid "Exit full size mode"
msgstr "Выйти из полного размера" msgstr "Выйти из полного размера"
@ -986,7 +990,7 @@ msgstr "Финализаторы"
msgid "First seen" msgid "First seen"
msgstr "Увиденно впервые" msgstr "Увиденно впервые"
#: src/renderer/components/dock/dock.tsx:116 #: src/renderer/components/dock/dock.tsx:98
msgid "Fit to window" msgid "Fit to window"
msgstr "По размеру окна" msgstr "По размеру окна"
@ -1074,7 +1078,7 @@ msgstr "Скрыть"
msgid "High number of replicas may cause cluster performance issues" msgid "High number of replicas may cause cluster performance issues"
msgstr "Большое количество реплик может вызвать проблемы с производительностью кластера" 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" msgid "Home"
msgstr "Ссылка" msgstr "Ссылка"
@ -1129,7 +1133,7 @@ msgstr "Изображение"
msgid "ImagePullPolicy" msgid "ImagePullPolicy"
msgstr "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" msgid "ImagePullSecrets"
msgstr "ImagePullSecrets" msgstr "ImagePullSecrets"
@ -1154,8 +1158,8 @@ msgstr "Ingresses"
msgid "Init Containers" msgid "Init Containers"
msgstr "Контейнеры инициализации" msgstr "Контейнеры инициализации"
#: src/renderer/components/+apps-helm-charts/helm-chart-details.tsx:76 #: src/renderer/components/+apps-helm-charts/helm-chart-details.tsx:83
#: src/renderer/components/dock/install-chart.tsx:128 #: src/renderer/components/dock/install-chart.tsx:127
msgid "Install" msgid "Install"
msgstr "Установить" msgstr "Установить"
@ -1163,15 +1167,15 @@ msgstr "Установить"
msgid "Installation complete!" msgid "Installation complete!"
msgstr "Установка завершена!" msgstr "Установка завершена!"
#: src/renderer/components/dock/install-chart.tsx:128 #: src/renderer/components/dock/install-chart.tsx:127
msgid "Installing..." msgid "Installing..."
msgstr "Установка.." msgstr "Установка.."
#: src/renderer/components/input/input.validators.ts:50 #: src/renderer/components/input/input_validators.ts:50
msgid "Invalid account ID" msgid "Invalid account ID"
msgstr "Неверный ID аккаунта" msgstr "Неверный ID аккаунта"
#: src/renderer/components/input/input.validators.ts:16 #: src/renderer/components/input/input_validators.ts:16
msgid "Invalid number" msgid "Invalid number"
msgstr "Неверный номер" msgstr "Неверный номер"
@ -1232,13 +1236,13 @@ msgstr "Размер ключа"
msgid "Keys" msgid "Keys"
msgstr "Ключи" 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" msgid "Keywords"
msgstr "Ключевые слова" msgstr "Ключевые слова"
#: src/renderer/components/+events/event-details.tsx:57 #: src/renderer/components/+events/event-details.tsx:57
#: src/renderer/components/+user-management-roles-bindings/role-binding-details.tsx:79 #: 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" msgid "Kind"
msgstr "Тип" msgstr "Тип"
@ -1250,7 +1254,7 @@ msgstr "Файл конфигурации"
msgid "Kubeconfig File" msgid "Kubeconfig File"
msgstr "Файл конфигурации" msgstr "Файл конфигурации"
#: src/renderer/components/+preferences/kubectl-binaries.tsx:35 #: src/renderer/components/+preferences/kubectl-binaries.tsx:23
msgid "Kubectl Binary" msgid "Kubectl Binary"
msgstr "" msgstr ""
@ -1344,7 +1348,7 @@ msgstr "Логи"
msgid "Logs copied to clipboard." msgid "Logs copied to clipboard."
msgstr "Скопировано." 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" msgid "Maintainers"
msgstr "Создатели" msgstr "Создатели"
@ -1370,7 +1374,7 @@ msgstr "Макс. подов"
msgid "Max Unavailable" msgid "Max Unavailable"
msgstr "" msgstr ""
#: src/renderer/components/input/input.validators.ts:41 #: src/renderer/components/input/input_validators.ts:41
msgid "Maximum length is {maxLength}" msgid "Maximum length is {maxLength}"
msgstr "Максимальная длина {maxLength}" msgstr "Максимальная длина {maxLength}"
@ -1442,11 +1446,11 @@ msgstr ""
msgid "Min Pods" msgid "Min Pods"
msgstr "Мин. подов" msgstr "Мин. подов"
#: src/renderer/components/dock/dock.tsx:117 #: src/renderer/components/dock/dock.tsx:99
msgid "Minimize" msgid "Minimize"
msgstr "Минимизировать" msgstr "Минимизировать"
#: src/renderer/components/input/input.validators.ts:36 #: src/renderer/components/input/input_validators.ts:36
msgid "Minimum length is {minLength}" msgid "Minimum length is {minLength}"
msgstr "Минимальная длина {minLength}" msgstr "Минимальная длина {minLength}"
@ -1455,7 +1459,7 @@ msgstr "Минимальная длина {minLength}"
msgid "Mount Options" msgid "Mount Options"
msgstr "Опции монтирования" 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" msgid "Mountable secrets"
msgstr "Монтируемые секреты" msgstr "Монтируемые секреты"
@ -1511,7 +1515,7 @@ msgstr "Установки"
#: src/renderer/components/+workloads-replicasets/replicasets.tsx:50 #: src/renderer/components/+workloads-replicasets/replicasets.tsx:50
#: src/renderer/components/+workloads-statefulsets/statefulsets.tsx:40 #: src/renderer/components/+workloads-statefulsets/statefulsets.tsx:40
#: src/renderer/components/+workspaces/workspaces.tsx:130 #: 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 #: src/renderer/components/kube-object/kube-object-meta.tsx:20
msgid "Name" msgid "Name"
msgstr "Имя" msgstr "Имя"
@ -1557,7 +1561,7 @@ msgstr ""
#: src/renderer/components/+workloads-jobs/jobs.tsx:38 #: src/renderer/components/+workloads-jobs/jobs.tsx:38
#: src/renderer/components/+workloads-pods/pods.tsx:76 #: src/renderer/components/+workloads-pods/pods.tsx:76
#: src/renderer/components/+workloads-statefulsets/statefulsets.tsx:41 #: 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/install-chart.tsx:122
#: src/renderer/components/dock/upgrade-chart.tsx:98 #: src/renderer/components/dock/upgrade-chart.tsx:98
#: src/renderer/components/item-object-list/page-filters-select.tsx:57 #: 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" msgid "New logs since opening the dialog"
msgstr "Новые логи с момента открытия диалога" msgstr "Новые логи с момента открытия диалога"
#: src/renderer/components/dock/dock.tsx:104 #: src/renderer/components/dock/dock.tsx:86
msgid "New tab" msgid "New tab"
msgstr "Новая вкладка" msgstr "Новая вкладка"
@ -1735,7 +1739,7 @@ msgstr "Ок"
msgid "Ok, got it!" msgid "Ok, got it!"
msgstr "" msgstr ""
#: src/renderer/components/dock/dock.tsx:117 #: src/renderer/components/dock/dock.tsx:99
msgid "Open" msgid "Open"
msgstr "Открыть" msgstr "Открыть"
@ -1940,7 +1944,7 @@ msgstr "Комиссия"
msgid "Proxy is used only for non-cluster communication." msgid "Proxy is used only for non-cluster communication."
msgstr "" msgstr ""
#: src/renderer/components/+add-cluster/add-cluster.tsx:293 #: src/renderer/components/+add-cluster/add-cluster.tsx:294
msgid "Proxy settings" msgid "Proxy settings"
msgstr "" msgstr ""
@ -2265,7 +2269,7 @@ msgstr ""
#: src/renderer/components/+config-secrets/secret-details.tsx:97 #: src/renderer/components/+config-secrets/secret-details.tsx:97
#: src/renderer/components/+workloads-pods/pod-logs-dialog.tsx:216 #: src/renderer/components/+workloads-pods/pod-logs-dialog.tsx:216
#: src/renderer/components/+workspaces/workspaces.tsx:132 #: 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" msgid "Save"
msgstr "Сохранить" msgstr "Сохранить"
@ -2319,6 +2323,10 @@ msgstr "Секрет"
msgid "Secret Name" msgid "Secret Name"
msgstr "Название секрета" 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 #: src/renderer/components/+config-secrets/add-secret-dialog.tsx:147
msgid "Secret name" msgid "Secret name"
msgstr "Имя секрета" msgstr "Имя секрета"
@ -2473,7 +2481,7 @@ msgid "Shell"
msgstr "Командная строка" msgstr "Командная строка"
#: src/renderer/components/+config-secrets/secret-details.tsx:93 #: 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/+workloads-pods/pod-logs-dialog.tsx:215
#: src/renderer/components/drawer/drawer-param-toggler.tsx:19 #: src/renderer/components/drawer/drawer-param-toggler.tsx:19
msgid "Show" msgid "Show"
@ -2581,12 +2589,12 @@ msgstr "Тип стратегии"
msgid "Sub-object" msgid "Sub-object"
msgstr "Суб-объект" msgstr "Суб-объект"
#: src/renderer/components/dock/info-panel.tsx:104 #: src/renderer/components/dock/info-panel.tsx:93
#: src/renderer/components/wizard/wizard.tsx:131 #: src/renderer/components/wizard/wizard.tsx:131
msgid "Submit" msgid "Submit"
msgstr "Отправить" msgstr "Отправить"
#: src/renderer/components/dock/info-panel.tsx:105 #: src/renderer/components/dock/info-panel.tsx:94
msgid "Submitting.." msgid "Submitting.."
msgstr "Применение.." msgstr "Применение.."
@ -2628,10 +2636,14 @@ msgstr ""
msgid "Terminal" msgid "Terminal"
msgstr "Терминал" msgstr "Терминал"
#: src/renderer/components/dock/dock.tsx:107 #: src/renderer/components/dock/dock.tsx:89
msgid "Terminal session" msgid "Terminal session"
msgstr "Сессия терминала" 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 #: src/renderer/components/+workloads-pods/pod-logs-dialog.tsx:226
msgid "There are no logs available for container." msgid "There are no logs available for container."
msgstr "Для контейнера нет логов." msgstr "Для контейнера нет логов."
@ -2640,11 +2652,11 @@ msgstr "Для контейнера нет логов."
msgid "There are no logs available." msgid "There are no logs available."
msgstr "Логи отсутствуют." msgstr "Логи отсутствуют."
#: src/renderer/components/input/input.validators.ts:6 #: src/renderer/components/input/input_validators.ts:6
msgid "This field is required" msgid "This field is required"
msgstr "Это обязательное поле" 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" msgid "This field must be a valid path"
msgstr "" msgstr ""
@ -2664,7 +2676,7 @@ msgstr "Из"
msgid "To help us improve the product please report bugs to {slackLink} community or {githubLink} issues tracker." msgid "To help us improve the product please report bugs to {slackLink} community or {githubLink} issues tracker."
msgstr "Чтобы помочь нам улучшить продукт пожалуйста отправляйте ошибки на {slackLink} сообщество или {githubLink} трекер ошибок." 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" msgid "Tokens"
msgstr "Токены" msgstr "Токены"
@ -2731,12 +2743,12 @@ msgstr "Обновить"
msgid "Updated" msgid "Updated"
msgstr "Обновлено" msgstr "Обновлено"
#: src/renderer/components/dock/upgrade-chart.tsx:105 #: src/renderer/components/dock/upgrade-chart.tsx:104
msgid "Updating.." msgid "Updating.."
msgstr "Обновление.." msgstr "Обновление.."
#: src/renderer/components/+apps-releases/release-details.tsx:176 #: 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" msgid "Upgrade"
msgstr "Обновить" msgstr "Обновить"
@ -2800,7 +2812,7 @@ msgstr "Конфигурация"
msgid "Verbs" msgid "Verbs"
msgstr "Определения" 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-helm-charts/helm-charts.tsx:66
#: src/renderer/components/+apps-releases/release-details.tsx:185 #: src/renderer/components/+apps-releases/release-details.tsx:185
#: src/renderer/components/+apps-releases/releases.tsx:91 #: 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." msgid "Workspaces are used to organize number of clusters into logical groups."
msgstr "" msgstr ""
#: src/renderer/components/input/input.validators.ts:11 #: src/renderer/components/input/input_validators.ts:11
msgid "Wrong email format" msgid "Wrong email format"
msgstr "Неверный формат электронной почты" msgstr "Неверный формат электронной почты"
#: src/renderer/components/input/input.validators.ts:26 #: src/renderer/components/input/input_validators.ts:26
msgid "Wrong url format" msgid "Wrong url format"
msgstr "Неверный url формат" msgstr "Неверный url формат"
@ -2954,7 +2966,7 @@ msgstr ""
msgid "timestamps" msgid "timestamps"
msgstr "временные метки" msgstr "временные метки"
#: src/renderer/components/dock/create-resource.tsx:55 #: src/renderer/components/dock/create-resource.tsx:57
msgid "{0, plural, one {Resource} other {Resources}}" msgid "{0, plural, one {Resource} other {Resources}}"
msgstr "{0, plural, one {Ресурс} few {Ресурсы} many {Ресурсы} other {Ресурсы}}" msgstr "{0, plural, one {Ресурс} few {Ресурсы} many {Ресурсы} other {Ресурсы}}"
@ -3013,6 +3025,6 @@ msgstr ""
"other {<2>Удалить <3>{selectedCount}</3> элементов <4>{selectedNames}</4> {tail}?</2>}\n" "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" msgid "{submitLabel} & Close"
msgstr "{submitLabel} и закрыть" msgstr "{submitLabel} и закрыть"

View File

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

View File

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

View File

@ -10,7 +10,7 @@ jest.mock("electron", () => {
} }
}) })
import { UserStore } from "./user-store" import { UserStore } from "../user-store"
import { SemVer } from "semver" import { SemVer } from "semver"
import electron from "electron" 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("workspace store tests", () => {
describe("for an empty config", () => { 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", () => { describe("split array on element tests", () => {
test("empty array", () => { test("empty array", () => {

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -12,7 +12,7 @@ import { Icon } from "../icon";
import { Input } from "../input"; import { Input } from "../input";
import { cssNames, prevDefault } from "../../utils"; import { cssNames, prevDefault } from "../../utils";
import { Button } from "../button"; import { Button } from "../button";
import { isRequired, Validator } from "../input/input.validators"; import { isRequired, Validator } from "../input/input_validators";
@observer @observer
export class Workspaces extends React.Component { 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("input validation tests", () => {
describe("isEmail tests", () => { describe("isEmail tests", () => {

View File

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

View File

@ -1,4 +1,4 @@
import { formatDuration } from "./formatDuration"; import { formatDuration } from "../formatDuration";
const second = 1000; const second = 1000;
const minute = 60 * second; const minute = 60 * second;

View File

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