Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,41 @@ test-fetch-all-configs:

test-all: test test-fetch-all-configs

# Dynamic test commands
test-config:
@if [ -z "$(CONFIG)" ]; then \
echo "Usage: make test-config CONFIG=github.com/releases.yml"; \
echo " make test-config CONFIG=github.com"; \
exit 1; \
fi
bundle exec rspec --example "$(CONFIG)" spec/html2rss/configs_dynamic_spec.rb

test-domain:
@if [ -z "$(DOMAIN)" ]; then \
echo "Usage: make test-domain DOMAIN=github.com"; \
exit 1; \
fi
bundle exec rspec --example "$(DOMAIN)" spec/html2rss/configs_dynamic_spec.rb

test-debug:
@if [ -z "$(CONFIG)" ]; then \
echo "Usage: make test-debug CONFIG=github.com/releases.yml"; \
exit 1; \
fi
DEBUG_CONFIG=$(CONFIG) bundle exec rspec spec/html2rss/configs_dynamic_spec.rb

# Migration commands
migrate-tests:
bin/migrate_to_dynamic_tests

restore-tests:
@if [ -d "spec/html2rss/configs_backup" ]; then \
cp -r spec/html2rss/configs_backup/* spec/html2rss/configs/; \
echo "✅ Restored tests from backup"; \
else \
echo "❌ No backup found"; \
fi

lintfix:
bundle exec rubocop -a
npx prettier --write lib/**/*.yml .github/**/*.yml README.md
17 changes: 17 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,23 @@ channel:

The `type` field specifies the parameter type (currently only `string` is supported), and `default` provides the default value when no parameter is explicitly provided.

## Testing

Uses **dynamic test generation** - no individual spec files needed!

```bash
# Test all configs
bundle exec rspec spec/html2rss/configs_dynamic_spec.rb

# Test specific config
make test-config CONFIG=github.com/releases.yml

# Test domain
make test-domain DOMAIN=github.com
```

**Adding new configs**: Just create the YAML file and run tests. No spec file needed.

## Documentation

- [Main Documentation](https://html2rss.github.io/html2rss-configs/)
Expand Down
16 changes: 9 additions & 7 deletions bin/rspec_changed_configs
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,16 @@

changed_files = `git diff --name-only origin/master | grep 'lib/html2rss/configs/.*/.*.yml'`.split("\n")

specs_to_run = changed_files.filter_map do |file|
filepath = File.expand_path File.join(__dir__, '..', file)
if changed_files.count.positive?
# Use dynamic test file with environment variable to filter changed configs
config_names = changed_files.map { |file| file.sub('lib/html2rss/configs/', '') }

"#{file.gsub('lib/', 'spec/')}_spec.rb" if File.exist?(filepath)
end

if specs_to_run.count.positive?
exec "bundle exec rspec --tag fetch #{specs_to_run.join(' ')}"
# Test each changed config individually
config_names.each do |config_name|
puts "Testing changed config: #{config_name}"
system("bundle exec rspec --example '#{config_name}' --tag fetch spec/html2rss/configs_dynamic_spec.rb")
end
else
puts 'No changed config files found'
exit 0
end
5 changes: 5 additions & 0 deletions lib/html2rss/configs/apnews.com/hub.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
---
parameters:
section:
type: string
default: "news"

channel:
url: https://apnews.com/%<section>s
language: en
Expand Down
8 changes: 8 additions & 0 deletions lib/html2rss/configs/cnet.com/section_sub.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,12 @@
---
parameters:
section:
type: string
default: "news"
sub:
type: string
default: "tech"

channel:
url: https://www.cnet.com/%<section>s/%<sub>s/
language: en
Expand Down
5 changes: 5 additions & 0 deletions lib/html2rss/configs/webentwickler-jobs.de/in.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
---
parameters:
region:
type: string
default: "berlin"

channel:
url: https://www.webentwickler-jobs.de/in/%<region>s
language: de
Expand Down
5 changes: 0 additions & 5 deletions spec/html2rss/configs/adfc.de/pressemitteilungen.yml_spec.rb

This file was deleted.

5 changes: 0 additions & 5 deletions spec/html2rss/configs/apnews.com/hub.yml_spec.rb

This file was deleted.

5 changes: 0 additions & 5 deletions spec/html2rss/configs/avherald.com/index.yml_spec.rb

This file was deleted.

This file was deleted.

5 changes: 0 additions & 5 deletions spec/html2rss/configs/bbc.com/mundo.yml_spec.rb

This file was deleted.

5 changes: 0 additions & 5 deletions spec/html2rss/configs/blog.mondediplo.net/feed.yml_spec.rb

This file was deleted.

5 changes: 0 additions & 5 deletions spec/html2rss/configs/canarianweekly.com/front.yml_spec.rb

This file was deleted.

5 changes: 0 additions & 5 deletions spec/html2rss/configs/cinemascore.com/index.yml_spec.rb

This file was deleted.

5 changes: 0 additions & 5 deletions spec/html2rss/configs/cleanenergywire.org/news.yml_spec.rb

This file was deleted.

5 changes: 0 additions & 5 deletions spec/html2rss/configs/cnet.com/section_sub.yml_spec.rb

This file was deleted.

This file was deleted.

5 changes: 0 additions & 5 deletions spec/html2rss/configs/cutle.fish/index.yml_spec.rb

This file was deleted.

This file was deleted.

This file was deleted.

5 changes: 0 additions & 5 deletions spec/html2rss/configs/dfs.de/pressemitteilungen.yml_spec.rb

This file was deleted.

5 changes: 0 additions & 5 deletions spec/html2rss/configs/dsw-info.de/presse.yml_spec.rb

This file was deleted.

5 changes: 0 additions & 5 deletions spec/html2rss/configs/espn.com/f1.yml_spec.rb

This file was deleted.

5 changes: 0 additions & 5 deletions spec/html2rss/configs/fia.com/documents.yml_spec.rb

This file was deleted.

5 changes: 0 additions & 5 deletions spec/html2rss/configs/formula1.com/latest.yml_spec.rb

This file was deleted.

5 changes: 0 additions & 5 deletions spec/html2rss/configs/github.com/releases.yml_spec.rb

This file was deleted.

5 changes: 0 additions & 5 deletions spec/html2rss/configs/iaapa.org/news.yml_spec.rb

This file was deleted.

5 changes: 0 additions & 5 deletions spec/html2rss/configs/imdb.com/ratings.yml_spec.rb

This file was deleted.

This file was deleted.

5 changes: 0 additions & 5 deletions spec/html2rss/configs/kinocheck.de/filmstarts.yml_spec.rb

This file was deleted.

5 changes: 0 additions & 5 deletions spec/html2rss/configs/newyorker.com/magazine.yml_spec.rb

This file was deleted.

5 changes: 0 additions & 5 deletions spec/html2rss/configs/nomanssky.com/news.yml_spec.rb

This file was deleted.

This file was deleted.

5 changes: 0 additions & 5 deletions spec/html2rss/configs/phys.org/weekly.yml_spec.rb

This file was deleted.

5 changes: 0 additions & 5 deletions spec/html2rss/configs/rbb24.de/meistgeklickt.yml_spec.rb

This file was deleted.

5 changes: 0 additions & 5 deletions spec/html2rss/configs/robinwood.de/aktuelles.yml_spec.rb

This file was deleted.

This file was deleted.

5 changes: 0 additions & 5 deletions spec/html2rss/configs/sebastianvettel.de/news.yml_spec.rb

This file was deleted.

This file was deleted.

5 changes: 0 additions & 5 deletions spec/html2rss/configs/solarthermalworld.org/news.yml_spec.rb

This file was deleted.

5 changes: 0 additions & 5 deletions spec/html2rss/configs/spektrum.de/meistgelesen.yml_spec.rb

This file was deleted.

5 changes: 0 additions & 5 deletions spec/html2rss/configs/spiegel.de/impressum_autor.yml_spec.rb

This file was deleted.

This file was deleted.

5 changes: 0 additions & 5 deletions spec/html2rss/configs/steuerzahler.de/news.yml_spec.rb

This file was deleted.

5 changes: 0 additions & 5 deletions spec/html2rss/configs/stripes.com/index.yml_spec.rb

This file was deleted.

This file was deleted.

This file was deleted.

5 changes: 0 additions & 5 deletions spec/html2rss/configs/teneriffa-news.com/news.yml_spec.rb

This file was deleted.

5 changes: 0 additions & 5 deletions spec/html2rss/configs/test.de/archiv.yml_spec.rb

This file was deleted.

This file was deleted.

5 changes: 0 additions & 5 deletions spec/html2rss/configs/thoughtworks.com/insights.yml_spec.rb

This file was deleted.

This file was deleted.

Loading