Browse Source

Fix rust client tests

Loris Leiva 1 year ago
parent
commit
13d1131c3d

+ 7 - 0
template/clients/base/scripts/generate-clients.mjs → template/clients/base/scripts/generate-clients.mjs.njk

@@ -6,6 +6,13 @@ import { getAllProgramIdls } from "./utils.mjs";
 // Instanciate Kinobi.
 const kinobi = k.createFromIdls(getAllProgramIdls());
 
+// Update programs.
+kinobi.update(
+  k.updateProgramsVisitor({
+    "{{ programCrateName | camelCase }}": { name: "{{ programName | camelCase }}" },
+  })
+);
+
 // Update accounts.
 kinobi.update(
   k.updateAccountsVisitor({

+ 0 - 4
template/clients/rust/clients/rust/src/lib.rs

@@ -1,4 +0,0 @@
-mod generated;
-
-pub use generated::programs::ACME_COUNTER_ID as ID;
-pub use generated::*;

+ 4 - 0
template/clients/rust/clients/rust/src/lib.rs.njk

@@ -0,0 +1,4 @@
+mod generated;
+
+pub use generated::programs::{{ programName | snakeCase | upper }}_ID as ID;
+pub use generated::*;

+ 2 - 2
template/clients/rust/clients/rust/tests/create.rs → template/clients/rust/clients/rust/tests/create.rs.njk

@@ -1,13 +1,13 @@
 #![cfg(feature = "test-sbf")]
 
-use acme_counter_client::{accounts::Counter, instructions::CreateBuilder};
+use {{ rustClientCrateName | snakeCase }}::{accounts::Counter, instructions::CreateBuilder};
 use borsh::BorshDeserialize;
 use solana_program_test::{tokio, ProgramTest};
 use solana_sdk::{signature::Signer, transaction::Transaction};
 
 #[tokio::test]
 async fn create() {
-    let mut context = ProgramTest::new("acme_counter", acme_counter_client::ID, None)
+    let mut context = ProgramTest::new("{{ programCrateName | snakeCase }}", {{ rustClientCrateName | snakeCase }}::ID, None)
         .start_with_context()
         .await;
 

+ 1 - 0
utils/renderTemplates.ts

@@ -61,6 +61,7 @@ export function renderTemplate(ctx: RenderContext, src: string, dest: string) {
   if (filename.endsWith(".njk")) {
     dest = dest.replace(/\.njk$/, "");
     fs.writeFileSync(dest, resolveNunjunksTemplate(src, ctx));
+    fs.chmodSync(dest, stats.mode);
     return;
   }