All files / src/templates ButtonTemplate.js

100% Statements 7/7
100% Branches 4/4
100% Functions 1/1
100% Lines 7/7

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30        3x 1x     2x 1x     1x 1x   1x                            
import { TEXT_LIMIT } from '../constants';
 
class ButtonTemplate {
  constructor({ text, buttons }) {
    if (text.length > TEXT_LIMIT) {
      throw new Error(`Text cannot be longer ${TEXT_LIMIT} characters.`);
    }
 
    if (!Array.isArray(buttons)) {
      throw new Error('buttons must be an array.');
    }
 
    this.text = text;
    this.buttons = buttons;
 
    return {
      attachment: {
        type: 'template',
        payload: {
          template_type: 'button',
          text: this.text,
          buttons: this.buttons,
        },
      },
    };
  }
}
 
export default ButtonTemplate;