<commit_before>import expect from 'expect';

describe('Async Action Creators', () => {
  describe('notes', () => {
    describe('selectNote()', () => {
      it('should create an action to select a note', () => {

      })
    })
    describe('updateNote()', () => {
      it('should create an action to update a note', () => {

      })
    })
    describe('saveNote()', () => {
      it('should create an action to save a note', () => {

      })
    })
    describe('deleteNote()', () => {
      it('should create an action to delete a note', () => {

      })
    })
  })

  describe('users', () => {
    describe('logIn()', () => {
      it('should create an action to log a user in', () => {

      })
    })
    describe('checkForCurrentSession()', () => {
      it('should create an action to check for a current session', () => {

      })
    })
    describe('storeUser()', () => {
      it('should create an action to store a user', () => {

      })
    })
    describe('unlock()', () => {
      it('should create an action to unlock a user\'s key', () => {

      })
    })
    describe('disconnect()', () => {
      it('should create an action to disconnect a user', () => {

      })
    })

  })
})

<commit_msg>setting up async tests with mock data<commit_after>import Immutable from 'immutable';
import expect from 'expect';
import configureMockStore from 'redux-mock-store'
import thunk from 'redux-thunk'
import uuid from 'node-uuid';
import * as notes from '../src/js/actions/notes';

const middlewares = [ thunk ]
const mockStore = configureMockStore(middlewares)

describe('Async Action Creators', () => {
  describe('notes', () => {
    const mockIds = (new Array(20)).join(',').split(',').map((_, i) => uuid.v4());
    const mockNotes = Immutable.List(mockIds.map((id, i) => Immutable.Map({
      id: id,
      content: '',
      saved: false,
      decrypted: {
        title: `Note ${i + 1}`,
        body: 'WOWOWOWOWOWOWWOWOOW'
      }
    })));

    describe('selectNote()', (done) => {
      it('should create an action with the selected note', () => {
        const note = mockNotes.get(16);
        const theID = note.get('id');

        const expectedActions = [{type: notes.SELECT_NOTE, note}];

        const store = mockStore(
          { notes: mockNotes },
          expectedActions,
          done
        );
        
        store.dispatch(notes.selectNote(theID));
      })
    })
    describe('updateNote()', (done) => {
      it('should create an action to update a note', () => {

      })
    })
    describe('saveNote()', (done) => {
      it('should create an action to save a note', () => {

      })
    })
    describe('deleteNote()', (done) => {
      it('should create an action to delete a note', () => {

      })
    })
  })

  describe('users', () => {
    describe('logIn()', () => {
      it('should create an action to log a user in', () => {

      })
    })
    describe('checkForCurrentSession()', () => {
      it('should create an action to check for a current session', () => {

      })
    })
    describe('storeUser()', () => {
      it('should create an action to store a user', () => {

      })
    })
    describe('unlock()', () => {
      it('should create an action to unlock a user\'s key', () => {

      })
    })
    describe('disconnect()', () => {
      it('should create an action to disconnect a user', () => {

      })
    })

  })
})


{'fraction_non_alphanumeric': 0.19005847953216373, 'fraction_numerical': 0.0017543859649122807, 'mean_word_length': 2.3310613437195715, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 47, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4411782', 'n_tokens_mistral': 1050, 'n_tokens_neox': 1016, 'n_words': 267}