summaryrefslogtreecommitdiff
path: root/spec/javascripts/dirty_submit/dirty_submit_collection_spec.js
blob: 47be0b3ce9dc3ffba6c74836dc3ac280738a3cbd (plain)
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
import DirtySubmitCollection from '~/dirty_submit/dirty_submit_collection';
import { setInputValue, createForm } from './helper';

describe('DirtySubmitCollection', () => {
  it('disables submits until there are changes', done => {
    const testElementsCollection = [createForm(), createForm()];
    const forms = testElementsCollection.map(testElements => testElements.form);

    new DirtySubmitCollection(forms); // eslint-disable-line no-new

    testElementsCollection.forEach(testElements => {
      const { input, submit } = testElements;
      const originalValue = input.value;

      expect(submit.disabled).toBe(true);

      return setInputValue(input, `${originalValue} changes`)
        .then(() => {
          expect(submit.disabled).toBe(false);
        })
        .then(() => setInputValue(input, originalValue))
        .then(() => {
          expect(submit.disabled).toBe(true);
        })
        .then(done)
        .catch(done.fail);
    });
  });
});