8000 Prevent loading all GH data on reset by dunkmann00 · Pull Request #245 · jekyll/github-metadata · GitHub
[go: up one dir, main page]

Skip to content

Prevent loading all GH data on reset #245

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Feb 17, 2023
Merged
Show file tree
Hide file tree
Changes from 1 commit
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
Prev Previous commit
Next Next commit
Check rendered site, add uninject test comments
This adds a check to make sure the files in the rendered site match
fixture files that are known to have the correct `site.github` data,
after running `site.process` twice.

This also adds code comments explaining the rationale and purpose
behind the different parts of the `uninject` test.
  • Loading branch information
dunkmann00 committed Feb 16, 2023
commit a910c3cd05ac75678ec35aef0042568a4c0d5102
20 changes: 18 additions & 2 deletions spec/site_github_munger_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -235,23 +235,39 @@
context "render the 'uninject' fixture test site" do
let(:source) { File.expand_path("test-site-uninject", __dir__) }
let(:dest) { File.expand_path("../tmp/test-site-uninject-build", __dir__) }
let(:config) { Jekyll::Configuration.from({"source" => source, "destination" => dest}) }
let(:fixture_rendered) { File.expand_path("test-site-uninject-rendered", __dir__) }

it "process site twice (simulate reset), check API calls" do
config = Jekyll::Configuration.from({"source" => source, "destination" => dest})
it "process site twice (simulate reset), check API calls & rendered site" do
site = Jekyll::Site.new(config)
site.process
# These API calls are expected because we use the attributes in the
# fixture site.
expect_api_call "/repos/jekyll/github-metadata"
expect_api_call "/repos/jekyll/github-metadata/releases/latest"
expect_api_call "/orgs/jekyll"
site.process
# After processing the site again, we expect that these API calls were
# still only made once. We cache the results so we shouldn't be making the
# same API call more than once.
expect_api_call "/repos/jekyll/github-metadata"
expect_api_call "/repos/jekyll/github-metadata/releases/latest"
expect_api_call "/orgs/jekyll"

# We do not expect these API calls to have been made since we do not use
# these attributes in the fixture site.
not_expect_api_call "/repos/jekyll/github-metadata/pages"
not_expect_api_call "/repos/jekyll/github-metadata/contributors?per_page=100"
not_expect_api_call "/orgs/jekyll/public_members?per_page=100"
not_expect_api_call "/users/jekyll/repos?per_page=100&type=public"

# Check to make sure the fixture site is rendered with the correct
# site.github values.
Dir.children(dest).each { |file|
rendered_file = File.join(dest, file)
fixture_file = File.join(fixture_rendered, file)
expect(File.read(rendered_file)).to eql(File.read(fixture_file))
}
end
end
end
13 changes: 13 additions & 0 deletions spec/test-site-uninject-rendered/index.html
Open in desktop
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Page Title</title>
</head>
<body>
<h1>github-metadata</h1>
<h2>:octocat: `site.github`</h2>
<h2>Owner: jekyll</h2>
<h3>Latest Release: {"url"=>"https://api.github.com/repos/jekyll/github-metadata/releases/5198319", "assets_url"=>"https://api.github.com/repos/jekyll/github-metadata/releases/5198319/assets", "upload_url"=>"https://uploads.github.com/repos/jekyll/github-metadata/releases/5198319/assets{?name,label}", "html_url"=>"https://github.com/jekyll/github-metadata/releases/tag/v2.3.1", "id"=>5198319, "tag_name"=>"v2.3.1", "target_commitish"=>"master", "name"=>"v2.3.1", "draft"=>false, "author"=>{"login"=>"jekyllbot", "id"=>6166343, "avatar_url"=>"https://avatars.githubusercontent.com/u/6166343?v=3", "gravatar_id"=>"", "url"=>"https://api.github.com/users/jekyllbot", "html_url"=>"https://github.com/jekyllbot", "followers_url"=>"https://api.github.com/users/jekyllbot/followers", "following_url"=>"https://api.github.com/users/jekyllbot/following{/other_user}", "gists_url"=>"https://api.github.com/users/jekyllbot/gists{/gist_id}", "starred_url"=>"https://api.github.com/users/jekyllbot/starred{/owner}{/repo}", "subscriptions_url"=>"https://api.github.com/users/jekyllbot/subscriptions", "organizations_url"=>"https://api.github.com/users/jekyllbot/orgs", "repos_url"=>"https://api.github.com/users/jekyllbot/repos", "events_url"=>"https://api.github.com/users/jekyllbot/events{/privacy}", "received_events_url"=>"https://api.github.com/users/jekyllbot/received_events", "type"=>"User", "site_admin"=>false}, "prerelease"=>false, "created_at"=>2017-01-18 20:10:29 UTC, "published_at"=>2017-01-18 20:10:33 UTC, "assets"=>[], "tarball_url"=>"https://api.github.com/repos/jekyll/github-metadata/tarball/v2.3.1", "zipball_url"=>"https://api.github.com/repos/jekyll/github-metadata/zipball/v2.3.1", "body"=>"- Remove log on Octokit::NotFound (#86)\n"}</h3>
</body>
</html>
1 change: 1 addition & 0 deletions spec/test-site-uninject-rendered/subvalues.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
owner: {"avatar_url"=>"https://avatars0.githubusercontent.com/u/3083652?v=4", "bio"=>nil, "blog"=>"https://jekyllrb.com", "collaborators"=>nil, "company"=>nil, "created_at"=>2012-12-19 19:37:35 UTC, "description"=>"Jekyll is a blog-aware, static site generator in Ruby.", "email"=>"", "followers"=>0, "following"=>0, "has_organization_projects"=>true, "has_repository_projects"=>true, "hireable"=>nil, "html_url"=>"https://github.com/jekyll", "id"=>3083652, "is_verified"=>true, "location"=>nil, "login"=>"jekyll", "name"=>"Jekyll", "node_id"=>"MDEyOk9yZ2FuaXphdGlvbjMwODM2NTI=", "public_gists"=>0, "public_repos"=>50, "type"=>"Organization", "updated_at"=>2019-01-27 15:27:32 UTC}
0