import { ContractType } from '@devphase/service';
import * as PhalaSdk from '@phala/sdk';
import type { KeyringPair } from '@polkadot/keyring/types';
import { stringToHex } from '@polkadot/util';
import { {{contract_name_pascal}} } from "@/typings/{{contract_name_pascal}}";

describe("{{contract_name_pascal}} test", () => {
    let factory: {{contract_name_pascal}}.Factory;
    let contract: {{contract_name_pascal}}.Contract;
    let signer: KeyringPair;
    let certificate : PhalaSdk.CertificateData;

    before(async function setup(): Promise<void> {
        factory = await this.devPhase.getFactory(
            './contracts/{{contract_name}}/target/ink/{{contract_name}}.contract',
            { contractType: ContractType.InkCode }
        );

        await factory.deploy();

        signer = this.devPhase.accounts.bob;
        certificate = await PhalaSdk.signCertificate({
            api: this.api,
            pair: signer,
        });
    });

    describe('default constructor', () => {
        before(async function() {
            contract = await factory.instantiate('default', []);
        });

        it('Should be able...', async function() {
            const response = await contract.query.proxy(certificate, {}, 'https://wttr.in/berlin?ATm');
            console.log(response.output.toJSON());
        });
    });
});
