use std::error::Error;
use optimizely::AttributeValue;
use common::setup;
mod common;
#[test]
fn user_context_set_attribute() -> Result<(), Box<dyn Error>> {
let ctx = setup()?;
let mut user_context = ctx.client.create_user_context("user123");
user_context.set_attribute("isLoggedIn", AttributeValue::Boolean(true));
user_context.set_attribute("appVersion", AttributeValue::String("1.3.2".into()));
let attributes = user_context.user_attributes();
assert_eq!(attributes.len(), 2);
assert!(attributes
.iter()
.any(|attribute| attribute.id() == "5714602848157696"));
Ok(())
}
#[test]
#[cfg(feature = "online")]
fn user_context_track_event() -> Result<(), Box<dyn Error>> {
let ctx = setup()?;
let user_context = ctx.client.create_user_context("user123");
user_context.track_event("purchase");
assert_eq!(ctx.conversion_counter.value(), 1);
Ok(())
}