Skip to content

Commit d1fcb31

Browse files
committed
part 17
1 parent a1f6a88 commit d1fcb31

File tree

5 files changed

+65
-0
lines changed

5 files changed

+65
-0
lines changed

package-lock.json

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,8 @@
1616
"build": "react-scripts build",
1717
"test": "react-scripts test --env=jsdom",
1818
"eject": "react-scripts eject"
19+
},
20+
"devDependencies": {
21+
"deep-freeze": "0.0.1"
1922
}
2023
}

src/actions/story.test.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { doAddStories } from './story';
2+
3+
describe('story action', () => {
4+
it('adds stories', () => {
5+
const stories = ['a', 'b'];
6+
7+
const expectedAction = {
8+
type: 'STORIES_ADD',
9+
stories,
10+
};
11+
const action = doAddStories(stories);
12+
13+
expect(action).toEqual(expectedAction);;
14+
});
15+
});

src/reducers/story.test.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import storyReducer from './story';
2+
import deepFreeze from 'deep-freeze';
3+
4+
describe('story reducer', () => {
5+
it('adds stories to the story state', () => {
6+
const stories = ['a', 'b', 'c'];
7+
8+
const action = {
9+
type: 'STORIES_ADD',
10+
stories,
11+
};
12+
13+
const previousState = { stories: [], error: null };
14+
const expectedNewState = { stories, error: null };
15+
16+
deepFreeze(previousState);
17+
const newState = storyReducer(previousState, action);
18+
19+
expect(newState).toEqual(expectedNewState);;
20+
});
21+
});

src/selectors/story.test.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import { getReadableStories } from './story';
2+
3+
describe('story selector', () => {
4+
it('retrieves readable stories', () => {
5+
const storyState = {
6+
error: null,
7+
stories: [
8+
{ objectID: '1', title: 'foo' },
9+
{ objectID: '2', title: 'bar' },
10+
],
11+
};
12+
const archiveState = ['1'];
13+
const state = { storyState, archiveState }
14+
15+
const expectedReadableStories = [{ objectID: '2', title: 'bar' }];
16+
const readableStories = getReadableStories(state);
17+
18+
expect(readableStories).toEqual(expectedReadableStories);;
19+
});
20+
});

0 commit comments

Comments
 (0)