test_config_defaults() { . "$project_dir/lib/config.sh" assert_eq "kewt" "$title" "default title" assert_eq "kewt" "$style" "default style" assert_eq "en" "$lang" "default lang" assert_eq "false" "$draft_by_default" "default draft_by_default" assert_eq "true" "$dir_indexes" "default dir_indexes" assert_eq "true" "$single_file_index" "default single_file_index" assert_eq "false" "$flatten" "default flatten" assert_eq "Home" "$home_name" "default home_name" assert_eq "true" "$show_home_in_nav" "default show_home_in_nav" assert_eq "false" "$generate_feed" "default generate_feed" assert_eq "rss.xml" "$feed_file" "default feed_file" assert_eq "12" "$posts_per_page" "default posts_per_page" assert_eq "false" "$generate_tags" "default generate_tags" assert_eq "tags" "$tags_dir" "default tags_dir" assert_eq "false" "$generate_search" "default generate_search" assert_eq "true" "$enable_header_links" "default enable_header_links" assert_eq "true" "$cw_hide_url" "default cw_hide_url" } test_config_reset() { . "$project_dir/lib/config.sh" title="custom" style="nord" generate_feed="true" reset_config assert_eq "kewt" "$title" "reset title" assert_eq "kewt" "$style" "reset style" assert_eq "false" "$generate_feed" "reset generate_feed" } test_config_load() { . "$project_dir/lib/config.sh" tmpdir="${TMPDIR:-/tmp}/kewt_test.$$" mkdir -p "$tmpdir" cat > "$tmpdir/test.conf" < "$tmpdir/test.conf" <<'EOF' footer = "made with kewt" nav_links = "[Docs](/docs), [About](/about)" EOF reset_config load_config "$tmpdir/test.conf" assert_eq 'made with kewt' "$footer" "load quoted footer" assert_eq "[Docs](/docs), [About](/about)" "$nav_links" "load quoted nav_links" rm -rf "$tmpdir" } test_config_load_skips_comments() { . "$project_dir/lib/config.sh" tmpdir="${TMPDIR:-/tmp}/kewt_test.$$" mkdir -p "$tmpdir" cat > "$tmpdir/test.conf" <