Skip to content

Commit 4809c2f

Browse files
authored
Bug 2012185 - add validation step to nimbus-fml generate (#7350)
1 parent 455d6cd commit 4809c2f

1 file changed

Lines changed: 27 additions & 0 deletions

File tree

components/support/nimbus-fml/src/command_line/workflows.rs

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,11 @@ pub(crate) fn generate_struct(cmd: &GenerateStructCmd) -> Result<()> {
3232
let filename = &cmd.manifest;
3333
let input = files.file_path(filename)?;
3434

35+
validate(&ValidateCmd {
36+
manifest: cmd.manifest.clone(),
37+
loader: cmd.loader.clone(),
38+
})?;
39+
3540
match (&input, &cmd.output.is_dir()) {
3641
(FilePath::Remote(_), _) => generate_struct_single(&files, input, cmd),
3742
(FilePath::Local(file), _) if !file.exists() => Err(FMLError::CliError(format!(
@@ -615,6 +620,28 @@ mod test {
615620
Ok(())
616621
}
617622

623+
#[test]
624+
fn test_generate_catches_invalid_feature() -> Result<(), FMLError> {
625+
let manifest = join(
626+
pkg_dir(),
627+
"fixtures/fe/invalid/invalid_default_value_for_one_channel.fml.yaml",
628+
);
629+
let output = NamedTempFile::new()?;
630+
631+
let cmd: GenerateStructCmd = GenerateStructCmd {
632+
manifest,
633+
output: output.path().into(),
634+
language: TargetLanguage::ExperimenterYAML,
635+
load_from_ir: false,
636+
channel: "app-debug".to_string(),
637+
loader: Default::default(),
638+
};
639+
640+
let result = generate_struct(&cmd);
641+
assert!(result.is_err());
642+
Ok(())
643+
}
644+
618645
#[test]
619646
fn test_validate_command() -> Result<()> {
620647
let paths = MANIFEST_PATHS

0 commit comments

Comments
 (0)