mirror of https://github.com/linkerd/linkerd2.git
105 lines
2.8 KiB
JavaScript
105 lines
2.8 KiB
JavaScript
import QueryToCliCmd from './QueryToCliCmd.jsx';
|
|
import React from 'react';
|
|
import { mount } from 'enzyme';
|
|
|
|
describe('QueryToCliCmd', () => {
|
|
it('renders a query as a linkerd CLI command', () => {
|
|
let query = {
|
|
"resource": "deploy/controller",
|
|
"namespace": "linkerd",
|
|
"scheme": ""
|
|
}
|
|
|
|
let component = mount(
|
|
<QueryToCliCmd
|
|
cmdName="routes"
|
|
query={query}
|
|
resource={query.resource}
|
|
/>
|
|
);
|
|
|
|
expect(component).toIncludeText("Current Routes query");
|
|
expect(component).toIncludeText("linkerd routes deploy/controller --namespace linkerd");
|
|
});
|
|
|
|
it('does not render flags for items that are not populated in the query', () => {
|
|
let query = {
|
|
"resource": "deploy/controller",
|
|
"namespace": "linkerd",
|
|
"scheme": "",
|
|
"maxRps": "",
|
|
"authority": "foo.bar:8080"
|
|
}
|
|
|
|
let component = mount(
|
|
<QueryToCliCmd
|
|
cmdName="tap"
|
|
query={query}
|
|
resource={query.resource} />
|
|
);
|
|
|
|
expect(component).toIncludeText("Current Tap query");
|
|
expect(component).toIncludeText("linkerd tap deploy/controller --namespace linkerd --authority foo.bar:8080");
|
|
});
|
|
|
|
it('displays the flags in the specified order per cli command', () => {
|
|
let query = {
|
|
"resource": "deploy/controller",
|
|
"namespace": "linkerd",
|
|
"scheme": "HTTPS",
|
|
"maxRps": "",
|
|
"toResource": "deploy/prometheus",
|
|
"authority": "foo.bar:8080"
|
|
}
|
|
|
|
let component = mount(
|
|
<QueryToCliCmd
|
|
cmdName="tap"
|
|
query={query}
|
|
resource={query.resource}
|
|
/>
|
|
);
|
|
|
|
expect(component).toIncludeText("Current Tap query");
|
|
expect(component).toIncludeText("linkerd tap deploy/controller --namespace linkerd --to deploy/prometheus --scheme HTTPS --authority foo.bar:8080");
|
|
});
|
|
|
|
it("doesn't render a namespace flag when the resource is a namespace", () => {
|
|
let query = {
|
|
"resource": "namespace/linkerd",
|
|
"namespace": "linkerd"
|
|
}
|
|
|
|
let component = mount(
|
|
<QueryToCliCmd
|
|
cmdName="top"
|
|
query={query}
|
|
resource={query.resource}
|
|
/>
|
|
);
|
|
|
|
expect(component).toIncludeText("Current Top query");
|
|
expect(component).toIncludeText("linkerd top namespace/linkerd");
|
|
});
|
|
|
|
it("doesn't render commands for which a flag is not defined", () => {
|
|
let query = {
|
|
"resource": "deploy/controller",
|
|
"namespace": "linkerd",
|
|
"scheme": "HTTPS",
|
|
"theLimitDoesNotExist": 999
|
|
}
|
|
|
|
let component = mount(
|
|
<QueryToCliCmd
|
|
cmdName="tap"
|
|
query={query}
|
|
resource={query.resource}
|
|
/>
|
|
);
|
|
|
|
expect(component).toIncludeText("Current Tap query");
|
|
expect(component).toIncludeText("linkerd tap deploy/controller --namespace linkerd --scheme HTTPS");
|
|
});
|
|
});
|