From 3f5ab45877462d6810faff718015bbfae868e603 Mon Sep 17 00:00:00 2001 From: majean5 Date: Wed, 14 Dec 2022 17:30:49 +0100 Subject: [PATCH] tests unitaires + vue matchmaking moche --- bob_party/src/components/PlayerBox.tsx | 39 ++++++++++ bob_party/src/core/tests/matchSolo.test.ts | 48 ++++++------ bob_party/src/navigation/AppNavigator.tsx | 3 +- bob_party/src/screens/MatchMaking.tsx | 47 +++++++++++ .../src/services/tests/loaderUserApi.test.ts | 62 --------------- .../src/services/tests/saverUserApi.test.ts | 21 ----- bob_party/src/services/tests/stubUser.test.ts | 78 ------------------- .../src/services/userServices/ILoaderUser.ts | 6 -- .../services/userServices/loaderUserApi.ts | 4 - bob_party/src/services/userServices/stub.ts | 20 +++-- 10 files changed, 126 insertions(+), 202 deletions(-) create mode 100644 bob_party/src/components/PlayerBox.tsx create mode 100644 bob_party/src/screens/MatchMaking.tsx delete mode 100644 bob_party/src/services/tests/loaderUserApi.test.ts delete mode 100644 bob_party/src/services/tests/saverUserApi.test.ts delete mode 100644 bob_party/src/services/tests/stubUser.test.ts diff --git a/bob_party/src/components/PlayerBox.tsx b/bob_party/src/components/PlayerBox.tsx new file mode 100644 index 0000000..7948eca --- /dev/null +++ b/bob_party/src/components/PlayerBox.tsx @@ -0,0 +1,39 @@ +import { FC, ReactNode, useCallback } from "react" +import { Pressable, Image, ImageStyle, Text, View, Alert, ImageSourcePropType, TextStyle } from "react-native" +import React from "react" +import { trace } from "console" +import { Game } from "../core/game" + +/* + Importing the correct stylesheet +*/ +import styles from './style/Game.style'; +import LobbySolo from "../screens/LobbySolo" +import ManagerMatch from "../services/matchServices/managerMatch" +import MatchCreator from "../core/Match/matchCreator" +import { useMatchStore } from "../context/matchContext" +import { MANAGER_MATCH, MANAGER_USER } from "../../appManagers" +import { Match } from "../core/Match/match" +import { User } from "../core/User/user" + +export const PlayerBox : + +/* + * match : match that must be displayed + * nav : tool needed to allow the navigation between the screens +*/ +FC<{user: User}> = +({user}) => +{ + return ( + + + {user.getUsername()} + + ) + + +} \ No newline at end of file diff --git a/bob_party/src/core/tests/matchSolo.test.ts b/bob_party/src/core/tests/matchSolo.test.ts index c2cc7b8..027b58b 100644 --- a/bob_party/src/core/tests/matchSolo.test.ts +++ b/bob_party/src/core/tests/matchSolo.test.ts @@ -1,5 +1,4 @@ import MatchSolo from '../Match/matchSolo'; -import { Conversation } from '../Conversation'; import { Skin } from '../Skin'; import { User } from '../User/user'; import { GameSolo } from '../GameSolo'; @@ -21,10 +20,12 @@ let myMap = new Map([ [100, 5], [150, 6] ]); -let game=new GameSolo(1, "bo jeu", img, "super jeu", 1, 1, myMap); -let match = new MatchSolo(1, false, tabU, game); let tabU2:User[] = []; +let game=new GameSolo(1, "bo jeu", img, "super jeu", 1, 1, myMap); let game2 = new GameSolo(2, "jeu magnifique", img, "wow jeu", 1, 1, myMap) +let match = new MatchSolo(1, false, tabU, game); +let match2 = new MatchSolo(1, false, tabU2, game2); +let match3 = new MatchSolo(1, false, tabU, game); // Get tests @@ -36,50 +37,47 @@ describe('Match get tests', () => { expect(match.getInGame()).toBe(false); }) it('should return tabU [usr] (users)', () => { - expect(match.getTabUsers()).toBe(tabU); + expect(match.getTabUsers()).toEqual(match3.getTabUsers()); }) it('should return game', () => { - expect(match.getGame).toBe(game); + expect(match.getGame()).toEqual(match3.getGame()); }) }) -// Setting new values -match.setGame(game2); -match.setInGame(true); -match.setTabUser(tabU2); - - // Set tests describe('Match set tests', () => { it('should return tabU2 [] (users)', () => { - expect(match.getTabUsers()).toBe(tabU2); + match.setTabUser(tabU2); + expect(match.getTabUsers()).toEqual(match2.getTabUsers()); }) it('should return true', () => { + match.setInGame(true); expect(match.getInGame()).toBe(true); }) it('should return game2', () => { - expect(match.getGame).toBe(game2); + match.setGame(game2); + expect(match.getGame()).toEqual(match2.getGame()); }) }) // Update Post-Match tests describe('Update post-match tests', () => { - it('should return 3', () => { - match.updatePostMatch(tabU[0],50); - expect(tabU[0].getCurrentCoins()).toBe(3); + it('should return 50', () => { + match.updatePostMatch(tabU[0],3); + expect(tabU[0].getCurrentCoins()).toBe(50); }) - it('should return 8', () => { - match.updatePostMatch(tabU[0],100); - expect(tabU[0].getCurrentCoins()).toBe(8); + it('should return 75', () => { + match.updatePostMatch(usr2,4); + expect(usr2.getCurrentCoins()).toBe(75); }) - it('should return 4', () => { - match.updatePostMatch(usr2,75); - expect(usr2.getCurrentCoins()).toBe(4); + it('should return 150', () => { + match.updatePostMatch(tabU[0],5); + expect(tabU[0].getCurrentCoins()).toBe(150); }) - it('should return 10', () => { - match.updatePostMatch(usr2,150); - expect(usr2.getCurrentCoins()).toBe(10); + it('should return 225', () => { + match.updatePostMatch(usr2,6); + expect(usr2.getCurrentCoins()).toBe(225); }) }) \ No newline at end of file diff --git a/bob_party/src/navigation/AppNavigator.tsx b/bob_party/src/navigation/AppNavigator.tsx index 142751d..1f727c4 100644 --- a/bob_party/src/navigation/AppNavigator.tsx +++ b/bob_party/src/navigation/AppNavigator.tsx @@ -14,6 +14,7 @@ import SignIn from '../screens/SignIn' import SignUp from '../screens/SignUp' import LobbySolo from '../screens/LobbySolo' import CookieClicker from '../Games/CookieClicker/cookieClicker' +import MatchMaking from '../screens/MatchMaking' const HomeStack = createStackNavigator(); @@ -93,7 +94,7 @@ const GameSoloStack = createStackNavigator(); function GameSoloStackScreen() { return ( - + ); diff --git a/bob_party/src/screens/MatchMaking.tsx b/bob_party/src/screens/MatchMaking.tsx new file mode 100644 index 0000000..c425628 --- /dev/null +++ b/bob_party/src/screens/MatchMaking.tsx @@ -0,0 +1,47 @@ +import { StatusBar } from 'expo-status-bar' +import { View, Image, Text, Button} from 'react-native' +import React from 'react'; +import stylesScreen from './style/screens.style'; +import styles from './style/Settings.style'; +import { TopBar } from '../components/TopBar'; +import { BotBar } from '../components/BotBar'; +import { Conversation } from '../core/conversation'; +import { ButtonGameTypeChoice } from '../components/ButtonGameTypeChoice'; +import { useMatchStore } from '../context/matchContext'; +import { FlatList, TextInput } from 'react-native-gesture-handler'; +import { PlayerBox } from '../components/PlayerBox'; + + +function MatchMaking(props: { navigation: any; }) { + + const { navigation } = props + + const match = useMatchStore().match; + + return ( + + + usr.getUsername()} + renderItem={({item}) => } + /> + +