Skip to content

Commit a194a2a

Browse files
authored
Merge pull request #125 from RAprogramm/119
119
2 parents a82096b + 2462bd5 commit a194a2a

File tree

1 file changed

+57
-0
lines changed

1 file changed

+57
-0
lines changed

tests/leptos.rs

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
// SPDX-FileCopyrightText: 2025 RAprogramm <[email protected]>
2+
// SPDX-License-Identifier: MIT
3+
4+
#![cfg(target_arch = "wasm32")]
5+
6+
use js_sys::{Object, Reflect};
7+
use leptos::prelude::use_context;
8+
use telegram_webapp_sdk::{
9+
core::{context::TelegramContext, init::init_sdk},
10+
leptos::provide_telegram_context
11+
};
12+
use wasm_bindgen::JsValue;
13+
use wasm_bindgen_test::{wasm_bindgen_test, wasm_bindgen_test_configure};
14+
use web_sys::window;
15+
16+
wasm_bindgen_test_configure!(run_in_browser);
17+
18+
fn install_webapp(init_data: &str) -> Result<(), JsValue> {
19+
let win = window().ok_or_else(|| JsValue::from_str("no window"))?;
20+
let telegram = Object::new();
21+
let webapp = Object::new();
22+
23+
Reflect::set(&webapp, &"initData".into(), &JsValue::from_str(init_data))?;
24+
Reflect::set(
25+
&webapp,
26+
&"themeParams".into(),
27+
&JsValue::from(Object::new())
28+
)?;
29+
30+
Reflect::set(&telegram, &"WebApp".into(), &webapp)?;
31+
Reflect::set(&win, &"Telegram".into(), &telegram)?;
32+
33+
Ok(())
34+
}
35+
36+
#[wasm_bindgen_test]
37+
fn provide_telegram_context_succeeds_after_init() -> Result<(), JsValue> {
38+
install_webapp("query_id=test&auth_date=1&hash=abc")?;
39+
init_sdk()?;
40+
41+
leptos::prelude::Owner::new().with(|| {
42+
provide_telegram_context()?;
43+
let ctx = use_context::<TelegramContext>()
44+
.ok_or_else(|| JsValue::from_str("context not provided"))?;
45+
46+
assert_eq!(ctx.init_data.query_id.as_deref(), Some("test"));
47+
Ok(())
48+
})
49+
}
50+
51+
#[wasm_bindgen_test]
52+
fn provide_telegram_context_fails_without_init() {
53+
leptos::prelude::Owner::new().with(|| {
54+
let result = provide_telegram_context();
55+
assert!(result.is_err());
56+
})
57+
}

0 commit comments

Comments
 (0)