Skip to content

Commit

Permalink
feat: add flag for developing dy admin apply
Browse files Browse the repository at this point in the history
  • Loading branch information
wafuwafu13 committed Oct 5, 2023
1 parent 1fc4422 commit 832e96b
Show file tree
Hide file tree
Showing 3 changed files with 54 additions and 5 deletions.
12 changes: 7 additions & 5 deletions src/cmd.rs
Original file line number Diff line number Diff line change
Expand Up @@ -427,6 +427,13 @@ pub enum AdminSub {
#[structopt(subcommand)]
target_type: DeleteSub,
},

/// [WIP] Create or update DynamoDB tables based on CloudFormation template files (.cfn.yml).
#[structopt(setting(structopt::clap::AppSettings::Hidden))]
Apply {
#[structopt(long)]
dev: bool,
},
/*
/// Compare the desired and current state of a DynamoDB table.
#[structopt()]
Expand All @@ -435,11 +442,6 @@ pub enum AdminSub {
name: String,
},
/// Create or update DynamoDB tables based on CloudFormation template files (.cfn.yml).
#[structopt()]
Apply {
},
/// Delete all items in the target table.
#[structopt()]
Truncate {
Expand Down
7 changes: 7 additions & 0 deletions src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,13 @@ async fn dispatch(context: &mut app::Context, subcommand: cmd::Sub) -> Result<()
yes,
} => control::delete_table(context.clone(), table_name_to_delete, yes).await,
},
cmd::AdminSub::Apply { dev } => {
if dev {
todo!()
} else {
println!("not yet implemented")
}
}
},

cmd::Sub::Scan {
Expand Down
40 changes: 40 additions & 0 deletions tests/apply.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

pub mod util;

use assert_cmd::prelude::*; // Add methods on commands
use predicates::prelude::*; // Used for writing assertions

#[tokio::test]
async fn test_apply() -> Result<(), Box<dyn std::error::Error>> {
let tm = util::setup().await?;
let mut c = tm.command()?;
let cmd = c.args(&["--region", "local", "admin", "apply"]);
cmd.assert()
.success()
.stdout(predicate::str::contains("not yet implemented"));
Ok(())
}

#[tokio::test]
#[should_panic(expected = "not yet implemented")]
async fn test_apply_with_dev() {
let tm = util::setup().await.unwrap();
let mut c = tm.command().unwrap();
let cmd = c.args(&["--region", "local", "admin", "apply", "--dev"]);
cmd.unwrap();
}

0 comments on commit 832e96b

Please sign in to comment.