Fork of daniellemaywood.uk/gleam — Wasm codegen work
1.5 kB
60 lines
1// SPDX-License-Identifier: Apache-2.0
2// SPDX-FileCopyrightText: 2022 The Gleam contributors
3
4use crate::{Error, manifest::ManifestPackage};
5
6use super::project_compiler::{BuildTool, usable_build_tools};
7
8#[test]
9fn usable_build_tool_unknown() {
10 assert_eq!(
11 usable_build_tools(&ManifestPackage::default().with_build_tools(&["unknown"])),
12 Err(Error::UnsupportedBuildTool {
13 package: "".into(),
14 build_tools: vec!["unknown".into()],
15 })
16 )
17}
18
19#[test]
20fn usable_build_tool_none() {
21 assert_eq!(
22 usable_build_tools(&ManifestPackage::default()),
23 Err(Error::UnsupportedBuildTool {
24 package: "".into(),
25 build_tools: vec![],
26 })
27 )
28}
29
30#[test]
31fn usable_build_tool_only_mix() {
32 assert_eq!(
33 usable_build_tools(&ManifestPackage::default().with_build_tools(&["mix"])),
34 Ok(vec![BuildTool::Mix])
35 )
36}
37
38#[test]
39fn usable_build_tool_only_rebar3() {
40 assert_eq!(
41 usable_build_tools(&ManifestPackage::default().with_build_tools(&["rebar3"])),
42 Ok(vec![BuildTool::Rebar3])
43 )
44}
45
46#[test]
47fn usable_build_tool_only_gleam() {
48 assert_eq!(
49 usable_build_tools(&ManifestPackage::default().with_build_tools(&["gleam"])),
50 Ok(vec![BuildTool::Gleam])
51 )
52}
53
54#[test]
55fn usable_build_tool_mix_then_rebar3() {
56 assert_eq!(
57 usable_build_tools(&ManifestPackage::default().with_build_tools(&["mix", "rebar3"])),
58 Ok(vec![BuildTool::Mix, BuildTool::Rebar3])
59 )
60}