Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Commit

Permalink
Tests For DirectLink
Browse files Browse the repository at this point in the history
  • Loading branch information
dapi committed Apr 12, 2016
1 parent 37108da commit 95b35b4
Show file tree
Hide file tree
Showing 3 changed files with 75 additions and 8 deletions.
31 changes: 30 additions & 1 deletion modules/__tests__/events-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import React from 'react'
/* Components to test */
import Element from '../components/Element.js';
import Link from '../components/Link.js';
import DirectLink from '../components/DirectLink.js';
import events from '../mixins/scroll-events.js';
/* Test */
import expect from 'expect'
Expand All @@ -31,18 +32,46 @@ describe('Events', () => {
<li><Link to="test3" spy={true} smooth={true} duration={scrollDuration}>Test 3</Link></li>
<li><Link to="test4" spy={true} smooth={true} duration={scrollDuration}>Test 4</Link></li>
<li><Link to="test5" spy={true} smooth={true} duration={scrollDuration}>Test 5</Link></li>
<li><DirectLink to="test6" spy={true} smooth={true} duration={scrollDuration}>Test 6</DirectLink></li>
</ul>
<Element name="test1" className="element">test 1</Element>
<Element name="test2" className="element">test 2</Element>
<Element name="test3" className="element">test 3</Element>
<Element name="test4" className="element">test 4</Element>
<Element name="test5" className="element">test 5</Element>
<div id="test6" className="element">test 6</div>
</div>

beforeEach(function () {
unmountComponentAtNode(node)
});

it('direct link calls begin and end event', (done) => {

render(component, node, () => {

var link = node.querySelectorAll('a')[5];

var begin = (to, target) => {
expect(to).toEqual('test6');
expect(Rtu.isDOMComponent(target)).toEqual(true);
};

var end = (to, target) => {
expect(to).toEqual('test6')
expect(Rtu.isDOMComponent(target)).toEqual(true);
};

events.scrollEvent.register('begin', begin);
events.scrollEvent.register('end', end);

Rtu.Simulate.click(link);

done();
});

})

it('it calls begin and end event', (done) => {

render(component, node, () => {
Expand All @@ -69,4 +98,4 @@ describe('Events', () => {

})

});
});
48 changes: 43 additions & 5 deletions modules/__tests__/page-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,14 @@ describe('Page', () => {
<li><Link to="test3" spy={true} smooth={true} duration={scrollDuration}>Test 3</Link></li>
<li><Link to="test4" spy={true} smooth={true} duration={scrollDuration}>Test 4</Link></li>
<li><Link to="test5" spy={true} smooth={true} duration={scrollDuration}>Test 5</Link></li>
<li><DirectLink to="test6" spy={true} smooth={true} duration={scrollDuration}>Test 6</DirectLink></li>
<li><DirectLink to="anchor" spy={true} smooth={true} duration={scrollDuration}>Test 6</DirectLink></li>
</ul>
<Element name="test1" className="element">test 1</Element>
<Element name="test2" className="element">test 2</Element>
<Element name="test3" className="element">test 3</Element>
<Element name="test4" className="element">test 4</Element>
<Element name="test5" className="element">test 5</Element>
<Element name="test6" className="element">test 6</Element>
<div id="anchor" name="test6" className="element">test 6</div>
</div>

beforeEach(() => {
Expand Down Expand Up @@ -80,23 +80,61 @@ describe('Page', () => {

})

it('it is at top in start', (done) => {
expect(window.scrollY).toEqual(0);
done();
});

it('is active when clicked', (done) => {
expect(window.scrollY).toEqual(0);

render(component, node, () => {

expect(window.scrollY).toEqual(0);
var link = node.querySelectorAll('a')[2];

var target = node.querySelectorAll('.element')[2];

var expectedScrollTo = target.getBoundingClientRect().top;

Rtu.Simulate.click(link);

/* Let it scroll, duration is based on param sent to Link */

setTimeout(() => {

expect(window.scrollY).toEqual(expectedScrollTo);

expect(link.className).toEqual('active');

done();

}, scrollDuration + 50);

});

})

it('is active when clicked to last (5) element', (done) => {
expect(window.scrollY).toEqual(0);

render(component, node, () => {
expect(window.scrollY).toEqual(0);

var link = node.querySelectorAll('a')[4];
var link = node.querySelectorAll('a')[5];

var target = node.querySelectorAll('.element')[4];
var target = node.querySelectorAll('.element')[5];

var expectedScrollTo = target.getBoundingClientRect().top;

Rtu.Simulate.click(link);

// expect(target.getAttribute('name')).toEqual('test6');
/* Let it scroll, duration is based on param sent to Link */

setTimeout(() => {

expect(expectedScrollTo).toEqual(window.scrollY);
expect(window.scrollY).toEqual(expectedScrollTo);

expect(link.className).toEqual('active');

Expand Down
4 changes: 2 additions & 2 deletions tests.webpack.js
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
var context = require.context('./modules', true, /-test\.js$/);
context.keys().forEach(context);
var context = require.context('./modules', true, /page-test\.js$/);
context.keys().forEach(context);

0 comments on commit 95b35b4

Please sign in to comment.