linkerd2/web/app/js/components/QueryToCliCmd.test.jsx

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");
});
});