forked from vergnet/application-amicale
Update tests to match new implementations
This commit is contained in:
parent
c86281cbd2
commit
1be913c5aa
4 changed files with 78 additions and 60 deletions
|
@ -64,7 +64,7 @@ test('connect good credentials', () => {
|
||||||
.mockImplementationOnce(() => {
|
.mockImplementationOnce(() => {
|
||||||
return Promise.resolve(true);
|
return Promise.resolve(true);
|
||||||
});
|
});
|
||||||
return expect(c.connect('email', 'password')).resolves.toBeTruthy();
|
return expect(c.connect('email', 'password')).resolves.toBe(undefined);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('connect good credentials no consent', () => {
|
test('connect good credentials no consent', () => {
|
||||||
|
@ -100,7 +100,7 @@ test('connect good credentials, fail save token', () => {
|
||||||
return Promise.reject(false);
|
return Promise.reject(false);
|
||||||
});
|
});
|
||||||
return expect(c.connect('email', 'password')).rejects.toBe(
|
return expect(c.connect('email', 'password')).rejects.toBe(
|
||||||
ERROR_TYPE.UNKNOWN,
|
ERROR_TYPE.TOKEN_SAVE,
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -125,7 +125,7 @@ test('connect bogus response 1', () => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
return expect(c.connect('email', 'password')).rejects.toBe(
|
return expect(c.connect('email', 'password')).rejects.toBe(
|
||||||
ERROR_TYPE.CONNECTION_ERROR,
|
ERROR_TYPE.SERVER_ERROR,
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -188,7 +188,7 @@ test('authenticatedRequest error bogus response', () => {
|
||||||
});
|
});
|
||||||
return expect(
|
return expect(
|
||||||
c.authenticatedRequest('https://www.amicale-insat.fr/api/token/check'),
|
c.authenticatedRequest('https://www.amicale-insat.fr/api/token/check'),
|
||||||
).rejects.toBe(ERROR_TYPE.CONNECTION_ERROR);
|
).rejects.toBe(ERROR_TYPE.SERVER_ERROR);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('authenticatedRequest connection error', () => {
|
test('authenticatedRequest connection error', () => {
|
||||||
|
@ -213,5 +213,5 @@ test('authenticatedRequest error no token', () => {
|
||||||
});
|
});
|
||||||
return expect(
|
return expect(
|
||||||
c.authenticatedRequest('https://www.amicale-insat.fr/api/token/check'),
|
c.authenticatedRequest('https://www.amicale-insat.fr/api/token/check'),
|
||||||
).rejects.toBe(ERROR_TYPE.UNKNOWN);
|
).rejects.toBe(ERROR_TYPE.TOKEN_RETRIEVE);
|
||||||
});
|
});
|
||||||
|
|
|
@ -5,36 +5,38 @@ import GridManager from '../logic/GridManager';
|
||||||
import ScoreManager from '../logic/ScoreManager';
|
import ScoreManager from '../logic/ScoreManager';
|
||||||
import Piece from '../logic/Piece';
|
import Piece from '../logic/Piece';
|
||||||
|
|
||||||
let colors = {
|
let theme = {
|
||||||
|
colors: {
|
||||||
tetrisBackground: '#000002',
|
tetrisBackground: '#000002',
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
jest.mock('../ScoreManager');
|
jest.mock('../logic/ScoreManager');
|
||||||
|
|
||||||
afterAll(() => {
|
afterAll(() => {
|
||||||
jest.restoreAllMocks();
|
jest.restoreAllMocks();
|
||||||
});
|
});
|
||||||
|
|
||||||
test('getEmptyLine', () => {
|
test('getEmptyLine', () => {
|
||||||
let g = new GridManager(2, 2, colors);
|
let g = new GridManager(2, 2, theme);
|
||||||
expect(g.getEmptyLine(2)).toStrictEqual([
|
expect(g.getEmptyLine(2)).toStrictEqual([
|
||||||
{color: colors.tetrisBackground, isEmpty: true},
|
{color: theme.colors.tetrisBackground, isEmpty: true, key: '0'},
|
||||||
{color: colors.tetrisBackground, isEmpty: true},
|
{color: theme.colors.tetrisBackground, isEmpty: true, key: '1'},
|
||||||
]);
|
]);
|
||||||
|
|
||||||
expect(g.getEmptyLine(-1)).toStrictEqual([]);
|
expect(g.getEmptyLine(-1)).toStrictEqual([]);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('getEmptyGrid', () => {
|
test('getEmptyGrid', () => {
|
||||||
let g = new GridManager(2, 2, colors);
|
let g = new GridManager(2, 2, theme);
|
||||||
expect(g.getEmptyGrid(2, 2)).toStrictEqual([
|
expect(g.getEmptyGrid(2, 2)).toStrictEqual([
|
||||||
[
|
[
|
||||||
{color: colors.tetrisBackground, isEmpty: true},
|
{color: theme.colors.tetrisBackground, isEmpty: true, key: '0'},
|
||||||
{color: colors.tetrisBackground, isEmpty: true},
|
{color: theme.colors.tetrisBackground, isEmpty: true, key: '1'},
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
{color: colors.tetrisBackground, isEmpty: true},
|
{color: theme.colors.tetrisBackground, isEmpty: true, key: '0'},
|
||||||
{color: colors.tetrisBackground, isEmpty: true},
|
{color: theme.colors.tetrisBackground, isEmpty: true, key: '1'},
|
||||||
],
|
],
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
@ -43,7 +45,7 @@ test('getEmptyGrid', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
test('getLinesToClear', () => {
|
test('getLinesToClear', () => {
|
||||||
let g = new GridManager(2, 2, colors);
|
let g = new GridManager(2, 2, theme);
|
||||||
g.getCurrentGrid()[0][0].isEmpty = false;
|
g.getCurrentGrid()[0][0].isEmpty = false;
|
||||||
g.getCurrentGrid()[0][1].isEmpty = false;
|
g.getCurrentGrid()[0][1].isEmpty = false;
|
||||||
let coord = [{x: 1, y: 0}];
|
let coord = [{x: 1, y: 0}];
|
||||||
|
@ -59,15 +61,15 @@ test('getLinesToClear', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
test('clearLines', () => {
|
test('clearLines', () => {
|
||||||
let g = new GridManager(2, 2, colors);
|
let g = new GridManager(2, 2, theme);
|
||||||
let grid = [
|
let grid = [
|
||||||
[
|
[
|
||||||
{color: colors.tetrisBackground, isEmpty: true},
|
{color: theme.colors.tetrisBackground, isEmpty: true, key: '0'},
|
||||||
{color: colors.tetrisBackground, isEmpty: true},
|
{color: theme.colors.tetrisBackground, isEmpty: true, key: '1'},
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
{color: '0', isEmpty: true},
|
{color: '0', isEmpty: true, key: '0'},
|
||||||
{color: '0', isEmpty: true},
|
{color: '0', isEmpty: true, key: '1'},
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
g.getCurrentGrid()[1][0].color = '0';
|
g.getCurrentGrid()[1][0].color = '0';
|
||||||
|
@ -77,19 +79,19 @@ test('clearLines', () => {
|
||||||
g.clearLines([1], scoreManager);
|
g.clearLines([1], scoreManager);
|
||||||
grid = [
|
grid = [
|
||||||
[
|
[
|
||||||
{color: colors.tetrisBackground, isEmpty: true},
|
{color: theme.colors.tetrisBackground, isEmpty: true, key: '0'},
|
||||||
{color: colors.tetrisBackground, isEmpty: true},
|
{color: theme.colors.tetrisBackground, isEmpty: true, key: '1'},
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
{color: colors.tetrisBackground, isEmpty: true},
|
{color: theme.colors.tetrisBackground, isEmpty: true, key: '0'},
|
||||||
{color: colors.tetrisBackground, isEmpty: true},
|
{color: theme.colors.tetrisBackground, isEmpty: true, key: '1'},
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
expect(g.getCurrentGrid()).toStrictEqual(grid);
|
expect(g.getCurrentGrid()).toStrictEqual(grid);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('freezeTetromino', () => {
|
test('freezeTetromino', () => {
|
||||||
let g = new GridManager(2, 2, colors);
|
let g = new GridManager(2, 2, theme);
|
||||||
let spy1 = jest
|
let spy1 = jest
|
||||||
.spyOn(GridManager.prototype, 'getLinesToClear')
|
.spyOn(GridManager.prototype, 'getLinesToClear')
|
||||||
.mockImplementation(() => {});
|
.mockImplementation(() => {});
|
||||||
|
|
|
@ -4,9 +4,11 @@ import React from 'react';
|
||||||
import Piece from '../logic/Piece';
|
import Piece from '../logic/Piece';
|
||||||
import ShapeI from '../Shapes/ShapeI';
|
import ShapeI from '../Shapes/ShapeI';
|
||||||
|
|
||||||
let colors = {
|
let theme = {
|
||||||
|
colors: {
|
||||||
tetrisI: '#000001',
|
tetrisI: '#000001',
|
||||||
tetrisBackground: '#000002',
|
tetrisBackground: '#000002',
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
jest.mock('../Shapes/ShapeI');
|
jest.mock('../Shapes/ShapeI');
|
||||||
|
@ -37,7 +39,7 @@ test('isPositionValid', () => {
|
||||||
];
|
];
|
||||||
let size = 2;
|
let size = 2;
|
||||||
|
|
||||||
let p = new Piece(colors);
|
let p = new Piece(theme);
|
||||||
expect(p.isPositionValid(grid, size, size)).toBeTrue();
|
expect(p.isPositionValid(grid, size, size)).toBeTrue();
|
||||||
x = 1;
|
x = 1;
|
||||||
y = 0;
|
y = 0;
|
||||||
|
@ -65,7 +67,7 @@ test('isPositionValid', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
test('tryMove', () => {
|
test('tryMove', () => {
|
||||||
let p = new Piece(colors);
|
let p = new Piece(theme);
|
||||||
const callbackMock = jest.fn();
|
const callbackMock = jest.fn();
|
||||||
let isValid = true;
|
let isValid = true;
|
||||||
let spy1 = jest
|
let spy1 = jest
|
||||||
|
@ -98,7 +100,7 @@ test('tryMove', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
test('tryRotate', () => {
|
test('tryRotate', () => {
|
||||||
let p = new Piece(colors);
|
let p = new Piece(theme);
|
||||||
let isValid = true;
|
let isValid = true;
|
||||||
let spy1 = jest
|
let spy1 = jest
|
||||||
.spyOn(Piece.prototype, 'isPositionValid')
|
.spyOn(Piece.prototype, 'isPositionValid')
|
||||||
|
@ -131,18 +133,30 @@ test('toGrid', () => {
|
||||||
return [{x: x, y: y}];
|
return [{x: x, y: y}];
|
||||||
});
|
});
|
||||||
let spy2 = jest.spyOn(ShapeI.prototype, 'getColor').mockImplementation(() => {
|
let spy2 = jest.spyOn(ShapeI.prototype, 'getColor').mockImplementation(() => {
|
||||||
return colors.tetrisI;
|
return theme.colors.tetrisI;
|
||||||
});
|
});
|
||||||
let grid = [
|
let grid = [
|
||||||
[{isEmpty: true}, {isEmpty: true}],
|
[
|
||||||
[{isEmpty: true}, {isEmpty: true}],
|
{isEmpty: true, key: '0'},
|
||||||
|
{isEmpty: true, key: '1'},
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{isEmpty: true, key: '0'},
|
||||||
|
{isEmpty: true, key: '1'},
|
||||||
|
],
|
||||||
];
|
];
|
||||||
let expectedGrid = [
|
let expectedGrid = [
|
||||||
[{color: colors.tetrisI, isEmpty: false}, {isEmpty: true}],
|
[
|
||||||
[{isEmpty: true}, {isEmpty: true}],
|
{color: theme.colors.tetrisI, isEmpty: false, key: '0'},
|
||||||
|
{isEmpty: true, key: '1'},
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{isEmpty: true, key: '0'},
|
||||||
|
{isEmpty: true, key: '1'},
|
||||||
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
let p = new Piece(colors);
|
let p = new Piece(theme);
|
||||||
p.toGrid(grid, true);
|
p.toGrid(grid, true);
|
||||||
expect(grid).toStrictEqual(expectedGrid);
|
expect(grid).toStrictEqual(expectedGrid);
|
||||||
|
|
||||||
|
@ -153,16 +167,16 @@ test('toGrid', () => {
|
||||||
test('removeFromGrid', () => {
|
test('removeFromGrid', () => {
|
||||||
let gridOld = [
|
let gridOld = [
|
||||||
[
|
[
|
||||||
{color: colors.tetrisI, isEmpty: false},
|
{color: theme.colors.tetrisI, isEmpty: false, key: '0'},
|
||||||
{color: colors.tetrisI, isEmpty: false},
|
{color: theme.colors.tetrisI, isEmpty: false, key: '1'},
|
||||||
{color: colors.tetrisBackground, isEmpty: true},
|
{color: theme.colors.tetrisBackground, isEmpty: true, key: '2'},
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
let gridNew = [
|
let gridNew = [
|
||||||
[
|
[
|
||||||
{color: colors.tetrisBackground, isEmpty: true},
|
{color: theme.colors.tetrisBackground, isEmpty: true, key: '0'},
|
||||||
{color: colors.tetrisBackground, isEmpty: true},
|
{color: theme.colors.tetrisBackground, isEmpty: true, key: '1'},
|
||||||
{color: colors.tetrisBackground, isEmpty: true},
|
{color: theme.colors.tetrisBackground, isEmpty: true, key: '2'},
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
let oldCoord = [
|
let oldCoord = [
|
||||||
|
@ -175,9 +189,9 @@ test('removeFromGrid', () => {
|
||||||
return oldCoord;
|
return oldCoord;
|
||||||
});
|
});
|
||||||
let spy2 = jest.spyOn(ShapeI.prototype, 'getColor').mockImplementation(() => {
|
let spy2 = jest.spyOn(ShapeI.prototype, 'getColor').mockImplementation(() => {
|
||||||
return colors.tetrisI;
|
return theme.colors.tetrisI;
|
||||||
});
|
});
|
||||||
let p = new Piece(colors);
|
let p = new Piece(theme);
|
||||||
p.removeFromGrid(gridOld);
|
p.removeFromGrid(gridOld);
|
||||||
expect(gridOld).toStrictEqual(gridNew);
|
expect(gridOld).toStrictEqual(gridNew);
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,8 @@ import React from 'react';
|
||||||
import BaseShape from '../Shapes/BaseShape';
|
import BaseShape from '../Shapes/BaseShape';
|
||||||
import ShapeI from '../Shapes/ShapeI';
|
import ShapeI from '../Shapes/ShapeI';
|
||||||
|
|
||||||
const colors = {
|
const theme = {
|
||||||
|
colors: {
|
||||||
tetrisI: '#000001',
|
tetrisI: '#000001',
|
||||||
tetrisO: '#000002',
|
tetrisO: '#000002',
|
||||||
tetrisT: '#000003',
|
tetrisT: '#000003',
|
||||||
|
@ -12,20 +13,21 @@ const colors = {
|
||||||
tetrisZ: '#000005',
|
tetrisZ: '#000005',
|
||||||
tetrisJ: '#000006',
|
tetrisJ: '#000006',
|
||||||
tetrisL: '#000007',
|
tetrisL: '#000007',
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
test('constructor', () => {
|
test('constructor', () => {
|
||||||
expect(() => new BaseShape()).toThrow(Error);
|
expect(() => new BaseShape()).toThrow(Error);
|
||||||
|
|
||||||
let T = new ShapeI(colors);
|
let T = new ShapeI(theme);
|
||||||
expect(T.position.y).toBe(0);
|
expect(T.position.y).toBe(0);
|
||||||
expect(T.position.x).toBe(3);
|
expect(T.position.x).toBe(3);
|
||||||
expect(T.getCurrentShape()).toStrictEqual(T.getShapes()[0]);
|
expect(T.getCurrentShape()).toStrictEqual(T.getShapes()[0]);
|
||||||
expect(T.getColor()).toBe(colors.tetrisI);
|
expect(T.getColor()).toBe(theme.colors.tetrisI);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('move', () => {
|
test('move', () => {
|
||||||
let T = new ShapeI(colors);
|
let T = new ShapeI(theme);
|
||||||
T.move(0, 1);
|
T.move(0, 1);
|
||||||
expect(T.position.x).toBe(3);
|
expect(T.position.x).toBe(3);
|
||||||
expect(T.position.y).toBe(1);
|
expect(T.position.y).toBe(1);
|
||||||
|
@ -44,7 +46,7 @@ test('move', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
test('rotate', () => {
|
test('rotate', () => {
|
||||||
let T = new ShapeI(colors);
|
let T = new ShapeI(theme);
|
||||||
T.rotate(true);
|
T.rotate(true);
|
||||||
expect(T.getCurrentShape()).toStrictEqual(T.getShapes()[1]);
|
expect(T.getCurrentShape()).toStrictEqual(T.getShapes()[1]);
|
||||||
T.rotate(true);
|
T.rotate(true);
|
||||||
|
@ -64,7 +66,7 @@ test('rotate', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
test('getCellsCoordinates', () => {
|
test('getCellsCoordinates', () => {
|
||||||
let T = new ShapeI(colors);
|
let T = new ShapeI(theme);
|
||||||
expect(T.getCellsCoordinates(false)).toStrictEqual([
|
expect(T.getCellsCoordinates(false)).toStrictEqual([
|
||||||
{x: 0, y: 1},
|
{x: 0, y: 1},
|
||||||
{x: 1, y: 1},
|
{x: 1, y: 1},
|
||||||
|
|
Loading…
Reference in a new issue