38 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Gherkin
		
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Gherkin
		
	
	
	
Feature: Configuring and using plugins
 | 
						|
  As a hacker
 | 
						|
  I want to specify my own plugins that can modify Jekyll's behaviour
 | 
						|
 | 
						|
  Scenario: Add a gem-based plugin
 | 
						|
    Given I have an "index.html" file that contains "Whatever"
 | 
						|
    And I have a configuration file with "plugins" set to "[jekyll_test_plugin]"
 | 
						|
    When I run jekyll build
 | 
						|
    Then I should get a zero exit status
 | 
						|
    And the _site directory should exist
 | 
						|
    And I should see "Whatever" in "_site/index.html"
 | 
						|
    And I should see "this is a test" in "_site/test.txt"
 | 
						|
 | 
						|
  Scenario: Add an empty whitelist to restrict all gems
 | 
						|
    Given I have an "index.html" file that contains "Whatever"
 | 
						|
    And I have a configuration file with:
 | 
						|
      | key       | value                |
 | 
						|
      | plugins   | [jekyll_test_plugin] |
 | 
						|
      | whitelist | []                   |
 | 
						|
    When I run jekyll build --safe
 | 
						|
    Then I should get a zero exit status
 | 
						|
    And the _site directory should exist
 | 
						|
    And I should see "Whatever" in "_site/index.html"
 | 
						|
    And the "_site/test.txt" file should not exist
 | 
						|
 | 
						|
  Scenario: Add a whitelist to restrict some gems but allow others
 | 
						|
    Given I have an "index.html" file that contains "Whatever"
 | 
						|
    And I have a configuration file with:
 | 
						|
      | key       | value                                              |
 | 
						|
      | plugins   | [jekyll_test_plugin, jekyll_test_plugin_malicious] |
 | 
						|
      | whitelist | [jekyll_test_plugin]                               |
 | 
						|
    When I run jekyll build --safe
 | 
						|
    Then I should get a zero exit status
 | 
						|
    And the _site directory should exist
 | 
						|
    And I should see "Whatever" in "_site/index.html"
 | 
						|
    And the "_site/test.txt" file should exist
 | 
						|
    And I should see "this is a test" in "_site/test.txt"
 |