23 lines
		
	
	
		
			840 B
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			23 lines
		
	
	
		
			840 B
		
	
	
	
		
			JavaScript
		
	
	
	
import { Document, parseDocument } from 'yaml';
 | 
						|
import { isValidStepSeq } from '~/pipeline_wizard/validators';
 | 
						|
import { steps as stepsYaml } from './mock/yaml';
 | 
						|
 | 
						|
describe('prop validation', () => {
 | 
						|
  const steps = parseDocument(stepsYaml).toJS();
 | 
						|
  const getAsYamlNode = (value) => new Document(value).contents;
 | 
						|
 | 
						|
  it('allows passing yaml nodes to the steps prop', () => {
 | 
						|
    const validSteps = getAsYamlNode(steps);
 | 
						|
    expect(isValidStepSeq(validSteps)).toBe(true);
 | 
						|
  });
 | 
						|
 | 
						|
  it.each`
 | 
						|
    scenario                     | stepsValue
 | 
						|
    ${'not a seq'}               | ${{ foo: 'bar' }}
 | 
						|
    ${'a step missing an input'} | ${[{ template: 'baz: boo' }]}
 | 
						|
    ${'an empty seq'}            | ${[]}
 | 
						|
  `('throws an error when passing $scenario to the steps prop', ({ stepsValue }) => {
 | 
						|
    expect(isValidStepSeq(stepsValue)).toBe(false);
 | 
						|
  });
 | 
						|
});
 |