158 lines
3.8 KiB
JavaScript
158 lines
3.8 KiB
JavaScript
|
const anchor = require('@project-serum/anchor');
|
||
|
|
||
|
describe('tictactoe', () => {
|
||
|
|
||
|
anchor.setProvider(anchor.Provider.env());
|
||
|
const program = anchor.workspace.Tictactoe;
|
||
|
let dashboard = anchor.web3.Keypair.generate()
|
||
|
let game = anchor.web3.Keypair.generate()
|
||
|
let player_o = anchor.web3.Keypair.generate()
|
||
|
|
||
|
it('Initialize Dashboard', async () => {
|
||
|
const tx = await program.rpc.initializeDashboard({
|
||
|
accounts: {
|
||
|
authority: program.provider.wallet.publicKey,
|
||
|
dashboard: dashboard.publicKey,
|
||
|
rent: anchor.web3.SYSVAR_RENT_PUBKEY,
|
||
|
},
|
||
|
signers: [dashboard],
|
||
|
instructions: [await program.account.dashboard.createInstruction(dashboard)]
|
||
|
})
|
||
|
|
||
|
console.log("transaction: ", tx)
|
||
|
});
|
||
|
|
||
|
it('Initialize Game', async () => {
|
||
|
const tx = await program.rpc.initialize({
|
||
|
accounts: {
|
||
|
playerX: program.provider.wallet.publicKey,
|
||
|
dashboard: dashboard.publicKey,
|
||
|
game: game.publicKey,
|
||
|
rent: anchor.web3.SYSVAR_RENT_PUBKEY,
|
||
|
},
|
||
|
signers: [game],
|
||
|
instructions: [await program.account.game.createInstruction(game)]
|
||
|
})
|
||
|
|
||
|
console.log("transaction: ", tx)
|
||
|
});
|
||
|
|
||
|
it('Player O joins', async () => {
|
||
|
const tx = await program.rpc.playerJoin({
|
||
|
accounts: {
|
||
|
playerO: player_o.publicKey,
|
||
|
game: game.publicKey,
|
||
|
},
|
||
|
signers: [player_o],
|
||
|
})
|
||
|
|
||
|
console.log("transaction: ", tx)
|
||
|
});
|
||
|
|
||
|
it('Player x plays', async () => {
|
||
|
const tx = await program.rpc.playerMove(1, 0, {
|
||
|
accounts: {
|
||
|
player: program.provider.wallet.publicKey,
|
||
|
game: game.publicKey,
|
||
|
},
|
||
|
})
|
||
|
console.log("transaction: ", tx)
|
||
|
});
|
||
|
|
||
|
it('Player o plays', async () => {
|
||
|
const tx = await program.rpc.playerMove(2, 1, {
|
||
|
accounts: {
|
||
|
player: player_o.publicKey,
|
||
|
game: game.publicKey,
|
||
|
},
|
||
|
signers: [player_o]
|
||
|
})
|
||
|
console.log("transaction: ", tx)
|
||
|
});
|
||
|
|
||
|
it('Player x plays', async () => {
|
||
|
const tx = await program.rpc.playerMove(1, 3, {
|
||
|
accounts: {
|
||
|
player: program.provider.wallet.publicKey,
|
||
|
game: game.publicKey,
|
||
|
},
|
||
|
})
|
||
|
console.log("transaction: ", tx)
|
||
|
});
|
||
|
|
||
|
it('Player o plays', async () => {
|
||
|
const tx = await program.rpc.playerMove(2, 6, {
|
||
|
accounts: {
|
||
|
player: player_o.publicKey,
|
||
|
game: game.publicKey,
|
||
|
},
|
||
|
signers: [player_o]
|
||
|
})
|
||
|
console.log("transaction: ", tx)
|
||
|
});
|
||
|
|
||
|
it('Player x plays', async () => {
|
||
|
const tx = await program.rpc.playerMove(1, 2, {
|
||
|
accounts: {
|
||
|
player: program.provider.wallet.publicKey,
|
||
|
game: game.publicKey,
|
||
|
},
|
||
|
})
|
||
|
console.log("transaction: ", tx)
|
||
|
});
|
||
|
|
||
|
it('Player o plays', async () => {
|
||
|
const tx = await program.rpc.playerMove(2, 4, {
|
||
|
accounts: {
|
||
|
player: player_o.publicKey,
|
||
|
game: game.publicKey,
|
||
|
},
|
||
|
signers: [player_o]
|
||
|
})
|
||
|
console.log("transaction: ", tx)
|
||
|
});
|
||
|
|
||
|
it('Player x plays', async () => {
|
||
|
const tx = await program.rpc.playerMove(1, 5, {
|
||
|
accounts: {
|
||
|
player: program.provider.wallet.publicKey,
|
||
|
game: game.publicKey,
|
||
|
},
|
||
|
})
|
||
|
console.log("transaction: ", tx)
|
||
|
});
|
||
|
|
||
|
it('Player o plays', async () => {
|
||
|
const tx = await program.rpc.playerMove(2, 8, {
|
||
|
accounts: {
|
||
|
player: player_o.publicKey,
|
||
|
game: game.publicKey,
|
||
|
},
|
||
|
signers: [player_o]
|
||
|
})
|
||
|
console.log("transaction: ", tx)
|
||
|
});
|
||
|
|
||
|
it('Player x plays', async () => {
|
||
|
const tx = await program.rpc.playerMove(1, 7, {
|
||
|
accounts: {
|
||
|
player: program.provider.wallet.publicKey,
|
||
|
game: game.publicKey,
|
||
|
},
|
||
|
})
|
||
|
console.log("transaction: ", tx)
|
||
|
});
|
||
|
|
||
|
it('Status', async () => {
|
||
|
const tx = await program.rpc.status({
|
||
|
accounts: {
|
||
|
dashboard: dashboard.publicKey,
|
||
|
game: game.publicKey,
|
||
|
},
|
||
|
})
|
||
|
|
||
|
console.log("transaction: ", tx)
|
||
|
});
|
||
|
|
||
|
});
|