cairo-language-server 2.20.0

The Cairo Language Server
Documentation
use indoc::indoc;

use crate::code_lens::test_code_lens_scarb_execute;

#[test]
fn test_one_executable_whole_package() {
    insta::assert_snapshot!(test_code_lens_scarb_execute((
        r#"
        #[executable]<caret>
        fn main(){
            // Do stuff
        }
        "#,
        indoc!(
            r#"
            [package]
            name = "indor"
            version = "0.1.0"
            edition = "2025_12"

            [dependencies]
            cairo_execute = "2.9.0"

            [executable]
            "#
        )
    )));
}

#[test]
fn test_one_executable_with_trivia() {
    insta::assert_snapshot!(test_code_lens_scarb_execute((
        r#"
        fn mock() {

        }



        #[executable]
        fn main<caret>(){
            // Do stuff
        }
        "#,
        indoc!(
            r#"
            [package]
            name = "indor"
            version = "0.1.0"
            edition = "2025_12"

            [dependencies]
            cairo_execute = "2.9.0"

            [executable]
            "#
        )
    )));
}

#[test]
fn test_two_executables_whole_package() {
    insta::assert_snapshot!(test_code_lens_scarb_execute((
        r#"
        #[executable]<caret>
        fn main(){
            // Do stuff
        }
        #[executable]
        fn main2(){
            // Do stuff
        }
        "#,
        indoc!(
            r#"
            [package]
            name = "indor"
            version = "0.1.0"
            edition = "2025_12"

            [dependencies]
            cairo_execute = "2.9.0"

            [executable]
            "#
        )
    )));
}

#[test]
fn test_two_executables_one_precise_def() {
    insta::assert_snapshot!(test_code_lens_scarb_execute((
        r#"
        #[executable]<caret>
        fn main(){
            // Do stuff
        }
        #[executable]
        fn main2(){
            // Do stuff
        }
        "#,
        indoc!(
            r#"
            [package]
            name = "indor"
            version = "0.1.0"
            edition = "2025_12"

            [dependencies]
            cairo_execute = "2.9.0"

            [[target.executable]]
            function = "indor::main2"
            "#
        )
    )));
}