158 lines
3.9 KiB
JavaScript
158 lines
3.9 KiB
JavaScript
const anchor = require("@coral-xyz/anchor");
|
|
|
|
describe("tictactoe", () => {
|
|
anchor.setProvider(anchor.AnchorProvider.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);
|
|
});
|
|
});
|