merge develop & resolve conflict
This commit is contained in:
commit
783cc00dd0
28 changed files with 695 additions and 236 deletions
120
test/unit/specs/services/gesture_service/gesture_service.spec.js
Normal file
120
test/unit/specs/services/gesture_service/gesture_service.spec.js
Normal file
|
@ -0,0 +1,120 @@
|
|||
import GestureService from 'src/services/gesture_service/gesture_service.js'
|
||||
|
||||
const mockTouchEvent = (x, y) => ({
|
||||
touches: [
|
||||
{
|
||||
screenX: x,
|
||||
screenY: y
|
||||
}
|
||||
]
|
||||
})
|
||||
|
||||
describe.only('GestureService', () => {
|
||||
describe('swipeGesture', () => {
|
||||
it('calls the callback on a successful swipe', () => {
|
||||
let swiped = false
|
||||
const callback = () => { swiped = true }
|
||||
const gesture = GestureService.swipeGesture(
|
||||
GestureService.DIRECTION_RIGHT,
|
||||
callback
|
||||
)
|
||||
|
||||
GestureService.beginSwipe(mockTouchEvent(100, 100), gesture)
|
||||
GestureService.updateSwipe(mockTouchEvent(200, 100), gesture)
|
||||
|
||||
expect(swiped).to.eql(true)
|
||||
})
|
||||
|
||||
it('calls the callback only once per begin', () => {
|
||||
let hits = 0
|
||||
const callback = () => { hits += 1 }
|
||||
const gesture = GestureService.swipeGesture(
|
||||
GestureService.DIRECTION_RIGHT,
|
||||
callback
|
||||
)
|
||||
|
||||
GestureService.beginSwipe(mockTouchEvent(100, 100), gesture)
|
||||
GestureService.updateSwipe(mockTouchEvent(150, 100), gesture)
|
||||
GestureService.updateSwipe(mockTouchEvent(200, 100), gesture)
|
||||
|
||||
expect(hits).to.eql(1)
|
||||
})
|
||||
|
||||
it('doesn\'t call the callback on an opposite swipe', () => {
|
||||
let swiped = false
|
||||
const callback = () => { swiped = true }
|
||||
const gesture = GestureService.swipeGesture(
|
||||
GestureService.DIRECTION_RIGHT,
|
||||
callback
|
||||
)
|
||||
|
||||
GestureService.beginSwipe(mockTouchEvent(100, 100), gesture)
|
||||
GestureService.updateSwipe(mockTouchEvent(0, 100), gesture)
|
||||
|
||||
expect(swiped).to.eql(false)
|
||||
})
|
||||
|
||||
it('doesn\'t call the callback on a swipe below threshold', () => {
|
||||
let swiped = false
|
||||
const callback = () => { swiped = true }
|
||||
const gesture = GestureService.swipeGesture(
|
||||
GestureService.DIRECTION_RIGHT,
|
||||
callback,
|
||||
100
|
||||
)
|
||||
|
||||
GestureService.beginSwipe(mockTouchEvent(100, 100), gesture)
|
||||
GestureService.updateSwipe(mockTouchEvent(150, 100), gesture)
|
||||
|
||||
expect(swiped).to.eql(false)
|
||||
})
|
||||
|
||||
it('doesn\'t call the callback on a perpendicular swipe', () => {
|
||||
let swiped = false
|
||||
const callback = () => { swiped = true }
|
||||
const gesture = GestureService.swipeGesture(
|
||||
GestureService.DIRECTION_RIGHT,
|
||||
callback,
|
||||
30,
|
||||
0.5
|
||||
)
|
||||
|
||||
GestureService.beginSwipe(mockTouchEvent(100, 100), gesture)
|
||||
GestureService.updateSwipe(mockTouchEvent(150, 200), gesture)
|
||||
|
||||
expect(swiped).to.eql(false)
|
||||
})
|
||||
|
||||
it('calls the callback on perpendicular swipe if within tolerance', () => {
|
||||
let swiped = false
|
||||
const callback = () => { swiped = true }
|
||||
const gesture = GestureService.swipeGesture(
|
||||
GestureService.DIRECTION_RIGHT,
|
||||
callback,
|
||||
30,
|
||||
2.0
|
||||
)
|
||||
|
||||
GestureService.beginSwipe(mockTouchEvent(100, 100), gesture)
|
||||
GestureService.updateSwipe(mockTouchEvent(150, 150), gesture)
|
||||
|
||||
expect(swiped).to.eql(true)
|
||||
})
|
||||
|
||||
it('works with any arbitrary 2d directions', () => {
|
||||
let swiped = false
|
||||
const callback = () => { swiped = true }
|
||||
const gesture = GestureService.swipeGesture(
|
||||
[-1, -1],
|
||||
callback,
|
||||
30,
|
||||
0.1
|
||||
)
|
||||
|
||||
GestureService.beginSwipe(mockTouchEvent(100, 100), gesture)
|
||||
GestureService.updateSwipe(mockTouchEvent(60, 60), gesture)
|
||||
|
||||
expect(swiped).to.eql(true)
|
||||
})
|
||||
})
|
||||
})
|
Loading…
Add table
Add a link
Reference in a new issue