Skip to content

Commit

Permalink
Merge pull request #23 from easyops-cn/jimmy/fix/ObjectAttr
Browse files Browse the repository at this point in the history
fix(object-attr): 流水线号和自增ID起始值增加默认值
  • Loading branch information
lijmyeah committed Feb 8, 2021
2 parents 1a046c4 + 92a686c commit a71cdfd
Show file tree
Hide file tree
Showing 2 changed files with 112 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ describe("ObjectAttrStr", () => {

it("should change regex", () => {
const props = {
value: defaultValue,
value: { ...defaultValue, mode: "" },
onChange: jest.fn(),
};
const wrapper = shallow(<ObjectAttrStr {...props} />);
Expand Down Expand Up @@ -69,6 +69,47 @@ describe("ObjectAttrStr", () => {
default: "test",
mode: "url",
});

wrapper.find("Row").at(1).children(0).invoke("onChange")({
target: { value: "markdown" },
});
expect(props.onChange).toBeCalledWith({
...defaultValue,
default: "test",
mode: "markdown",
});

wrapper.find("Row").at(1).children(0).invoke("onChange")({
target: { value: "multiple-lines" },
});
expect(props.onChange).toBeCalledWith({
...defaultValue,
default: "test",
mode: "multiple-lines",
});
});

it("should change mode to markdown", () => {
const props = {
value: defaultValue,
onChange: jest.fn(),
};
const wrapper = shallow(<ObjectAttrStr {...props} />);
wrapper.find("Row").at(1).children(0).invoke("onChange")({
target: { value: "markdown" },
});
expect(props.onChange).toBeCalledWith({
...defaultValue,
mode: "markdown",
});
wrapper.find("Col").at(1).children(0).invoke("onChange")({
target: { value: "test" },
});
expect(props.onChange).toBeCalledWith({
...defaultValue,
default: "test",
mode: "markdown",
});
});

it("should change default", () => {
Expand Down Expand Up @@ -112,6 +153,11 @@ describe("ObjectAttrStr", () => {
...defaultValue,
default_type: "series-number",
});
wrapper.find(Select).at(0).invoke("onChange")("normal", null);
expect(props.onChange).toBeCalledWith({
...defaultValue,
default_type: "normal",
});
});

it("should change prefix", async () => {
Expand Down Expand Up @@ -190,4 +236,61 @@ describe("ObjectAttrStr", () => {
series_number_length: 1,
});
});

it("should change start_value to 1(default value)", () => {
const props = {
value: {
mode: "default",
default_type: "auto-increment-id",
regex: "",
start_value: 5,
prefix: "",
series_number_length: 1,
},
onChange: jest.fn(),
};
const { getByText, queryByTestId } = render(<ObjectAttrStr {...props} />);
const popoverBtn = getByText("高级");
fireEvent.click(popoverBtn);
fireEvent.change(queryByTestId("start-value-input"), {
target: { value: null },
});
const confirmBtn = queryByTestId("start-value-confirm");

fireEvent.click(confirmBtn);

expect(props.onChange).toBeCalledWith({
regex: "",
mode: "default",
prefix: "",
default_type: "auto-increment-id",
start_value: 1,
series_number_length: 1,
});
});

it("should not hange start_value", () => {
const props = {
value: {
mode: "default",
default_type: "auto-increment-id",
regex: "",
start_value: 1,
prefix: "",
series_number_length: 1,
},
onChange: jest.fn(),
};
const { getByText, queryByTestId } = render(<ObjectAttrStr {...props} />);
const popoverBtn = getByText("高级");
fireEvent.click(popoverBtn);
fireEvent.change(queryByTestId("start-value-input"), {
target: { value: 5 },
});
const cancelButton = queryByTestId("start-value-cancel");

fireEvent.click(cancelButton);

expect(props.onChange).toBeCalledTimes(0);
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import {
InputNumber,
} from "antd";
import { RadioChangeEvent } from "antd/lib/radio";
import { isNil } from "lodash";
import { isNil, isNumber } from "lodash";

const Option = Select.Option;

Expand Down Expand Up @@ -99,7 +99,7 @@ export function ObjectAttrStr(props: ObjectAttrStrProps): React.ReactElement {
setPopoverVisible(false);
};
const handleNumberChange = (e: number) => {
setStartValue(e);
setStartValue(isNumber(e) && e >= 1 ? e : 1);
};

const getPopoverContent = (): React.ReactNode => (
Expand All @@ -108,6 +108,7 @@ export function ObjectAttrStr(props: ObjectAttrStrProps): React.ReactElement {
<Col span={6}>起始值</Col>
<Col span={16}>
<InputNumber
placeholder="默认为1"
data-testid="start-value-input"
style={{ width: "100%" }}
value={startValue}
Expand All @@ -117,7 +118,9 @@ export function ObjectAttrStr(props: ObjectAttrStrProps): React.ReactElement {
</Col>
</Row>
<Row justify="end" type="flex">
<Button onClick={hidePopover}>取消</Button>
<Button data-testid="start-value-cancel" onClick={hidePopover}>
取消
</Button>
<Button
onClick={handleStartValueChange}
type="primary"
Expand All @@ -141,7 +144,8 @@ export function ObjectAttrStr(props: ObjectAttrStrProps): React.ReactElement {
}}
/>
);
} else if (value.mode === "multiple-lines" || value.mode === "markdown") {
} else {
// value.mode === "multiple-lines" || value.mode === "markdown"
return (
<Input.TextArea
rows={4}
Expand Down

0 comments on commit a71cdfd

Please sign in to comment.