anchor/tests/tictactoe/tests/tictactoe.js

158 lines
3.8 KiB
JavaScript
Raw Normal View History

2021-08-18 23:50:50 -07:00
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)
});
});