mirror of
https://github.com/ansible/awx.git
synced 2026-01-12 10:30:03 -03:30
add tests for array/string survey multi-select
This commit is contained in:
parent
a324753180
commit
f4b0bd68bd
@ -27,9 +27,6 @@ export default function SurveyQuestionAdd({ survey, updateSurvey }) {
|
||||
let defaultAnswers = '';
|
||||
formData.formattedChoices.forEach(({ choice, isDefault }, i) => {
|
||||
choices.push(choice);
|
||||
// i === formData.formattedChoices.length - 1
|
||||
// ? choices.concat(`${choice}`)
|
||||
// : choices.concat(`${choice}\n`);
|
||||
if (isDefault) {
|
||||
defaultAnswers =
|
||||
i === formData.formattedChoices.length - 1
|
||||
|
||||
@ -41,18 +41,16 @@ describe('<SurveyQuestionEdit />', () => {
|
||||
],
|
||||
});
|
||||
updateSurvey = jest.fn();
|
||||
act(() => {
|
||||
wrapper = mountWithContexts(
|
||||
<Switch>
|
||||
<Route path="/templates/:templateType/:id/survey/edit">
|
||||
<SurveyQuestionEdit survey={survey} updateSurvey={updateSurvey} />
|
||||
</Route>
|
||||
</Switch>,
|
||||
{
|
||||
context: { router: { history } },
|
||||
}
|
||||
);
|
||||
});
|
||||
wrapper = mountWithContexts(
|
||||
<Switch>
|
||||
<Route path="/templates/:templateType/:id/survey/edit">
|
||||
<SurveyQuestionEdit survey={survey} updateSurvey={updateSurvey} />
|
||||
</Route>
|
||||
</Switch>,
|
||||
{
|
||||
context: { router: { history } },
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
test('should render form', () => {
|
||||
@ -147,4 +145,164 @@ describe('<SurveyQuestionEdit />', () => {
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
test('should handle multiplechoice as array', () => {
|
||||
const survey = {
|
||||
spec: [
|
||||
{
|
||||
question_name: 'What is the foo?',
|
||||
question_description: 'more about the foo',
|
||||
variable: 'foo',
|
||||
required: true,
|
||||
type: 'multiplechoice',
|
||||
choices: ['one', 'two', 'three'],
|
||||
default: '',
|
||||
min: 0,
|
||||
max: 1024,
|
||||
},
|
||||
],
|
||||
};
|
||||
history = createMemoryHistory({
|
||||
initialEntries: [
|
||||
'/templates/job_templates/1/survey/edit?question_variable=foo',
|
||||
],
|
||||
});
|
||||
updateSurvey = jest.fn();
|
||||
wrapper = mountWithContexts(
|
||||
<Switch>
|
||||
<Route path="/templates/:templateType/:id/survey/edit">
|
||||
<SurveyQuestionEdit survey={survey} updateSurvey={updateSurvey} />
|
||||
</Route>
|
||||
</Switch>,
|
||||
{
|
||||
context: { router: { history } },
|
||||
}
|
||||
);
|
||||
|
||||
const inputs = wrapper.find('MultipleChoiceField TextInput');
|
||||
expect(inputs).toHaveLength(3);
|
||||
expect(inputs.at(0).prop('value')).toEqual('one');
|
||||
expect(inputs.at(1).prop('value')).toEqual('two');
|
||||
expect(inputs.at(2).prop('value')).toEqual('three');
|
||||
});
|
||||
|
||||
test('should handle multiplechoice as string', () => {
|
||||
const survey = {
|
||||
spec: [
|
||||
{
|
||||
question_name: 'What is the foo?',
|
||||
question_description: 'more about the foo',
|
||||
variable: 'foo',
|
||||
required: true,
|
||||
type: 'multiplechoice',
|
||||
choices: 'one\ntwo\nthree',
|
||||
default: '',
|
||||
min: 0,
|
||||
max: 1024,
|
||||
},
|
||||
],
|
||||
};
|
||||
history = createMemoryHistory({
|
||||
initialEntries: [
|
||||
'/templates/job_templates/1/survey/edit?question_variable=foo',
|
||||
],
|
||||
});
|
||||
updateSurvey = jest.fn();
|
||||
wrapper = mountWithContexts(
|
||||
<Switch>
|
||||
<Route path="/templates/:templateType/:id/survey/edit">
|
||||
<SurveyQuestionEdit survey={survey} updateSurvey={updateSurvey} />
|
||||
</Route>
|
||||
</Switch>,
|
||||
{
|
||||
context: { router: { history } },
|
||||
}
|
||||
);
|
||||
|
||||
const inputs = wrapper.find('MultipleChoiceField TextInput');
|
||||
expect(inputs).toHaveLength(3);
|
||||
expect(inputs.at(0).prop('value')).toEqual('one');
|
||||
expect(inputs.at(1).prop('value')).toEqual('two');
|
||||
expect(inputs.at(2).prop('value')).toEqual('three');
|
||||
});
|
||||
|
||||
test('should handle multiselect as array', () => {
|
||||
const survey = {
|
||||
spec: [
|
||||
{
|
||||
question_name: 'What is the foo?',
|
||||
question_description: 'more about the foo',
|
||||
variable: 'foo',
|
||||
required: true,
|
||||
type: 'multiselect',
|
||||
choices: ['one', 'two', 'three'],
|
||||
default: '',
|
||||
min: 0,
|
||||
max: 1024,
|
||||
},
|
||||
],
|
||||
};
|
||||
history = createMemoryHistory({
|
||||
initialEntries: [
|
||||
'/templates/job_templates/1/survey/edit?question_variable=foo',
|
||||
],
|
||||
});
|
||||
updateSurvey = jest.fn();
|
||||
wrapper = mountWithContexts(
|
||||
<Switch>
|
||||
<Route path="/templates/:templateType/:id/survey/edit">
|
||||
<SurveyQuestionEdit survey={survey} updateSurvey={updateSurvey} />
|
||||
</Route>
|
||||
</Switch>,
|
||||
{
|
||||
context: { router: { history } },
|
||||
}
|
||||
);
|
||||
|
||||
const inputs = wrapper.find('MultipleChoiceField TextInput');
|
||||
expect(inputs).toHaveLength(3);
|
||||
expect(inputs.at(0).prop('value')).toEqual('one');
|
||||
expect(inputs.at(1).prop('value')).toEqual('two');
|
||||
expect(inputs.at(2).prop('value')).toEqual('three');
|
||||
});
|
||||
|
||||
test('should handle multiselect as string', () => {
|
||||
const survey = {
|
||||
spec: [
|
||||
{
|
||||
question_name: 'What is the foo?',
|
||||
question_description: 'more about the foo',
|
||||
variable: 'foo',
|
||||
required: true,
|
||||
type: 'multiselect',
|
||||
choices: 'one\ntwo\nthree',
|
||||
default: '',
|
||||
min: 0,
|
||||
max: 1024,
|
||||
},
|
||||
],
|
||||
};
|
||||
history = createMemoryHistory({
|
||||
initialEntries: [
|
||||
'/templates/job_templates/1/survey/edit?question_variable=foo',
|
||||
],
|
||||
});
|
||||
updateSurvey = jest.fn();
|
||||
wrapper = mountWithContexts(
|
||||
<Switch>
|
||||
<Route path="/templates/:templateType/:id/survey/edit">
|
||||
<SurveyQuestionEdit survey={survey} updateSurvey={updateSurvey} />
|
||||
</Route>
|
||||
</Switch>,
|
||||
{
|
||||
context: { router: { history } },
|
||||
}
|
||||
);
|
||||
|
||||
const inputs = wrapper.find('MultipleChoiceField TextInput');
|
||||
expect(inputs).toHaveLength(3);
|
||||
expect(inputs.at(0).prop('value')).toEqual('one');
|
||||
expect(inputs.at(1).prop('value')).toEqual('two');
|
||||
expect(inputs.at(2).prop('value')).toEqual('three');
|
||||
});
|
||||
});
|
||||
|
||||
@ -117,7 +117,7 @@ function SurveyReorderModal({
|
||||
let component = null;
|
||||
const choices = Array.isArray(q.choices)
|
||||
? q.choices
|
||||
: q.choices.split('\n');
|
||||
: (q.choices || '').split('\n');
|
||||
switch (q.type) {
|
||||
case 'password':
|
||||
component = (
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user