NAME

App::GitHooks::Test - Shared test functions for App::GitHooks.

VERSION

Version 1.9.0

FUNCTIONS

ok_add_file()

Create a file and add it to the git index.

ok_add_file(
	repository => $repository,
	path       => $path,
	content    => $content,
);

Arguments:

  • repository (mandatory)

    A Git::Repository object.

  • path (mandatory)

    The path of the file to write, relative to the root of the git repository passed.

  • content (optional)

    The content of the file to write.

ok_add_files()

Create files and add them to the git index.

ok_add_files(
	repository => $repository,
	files      =>
	{
		$file_name => $file_content,
		...
	},
);

Arguments:

  • repository (mandatory)

    A Git::Repository object.

  • files (optional)

    A hashref with file names as keys and the content of each file as the corresponding value.

ok_setup_repository()

Set up a test repository.

ok_setup_repository(
	cleanup_test_repository => $cleanup_test_repository, # default 1
	config                  => $config,                  # default ''
	hooks                   => \@hooks,                  # default []
	plugins                 => \@plugins,                # default []
);

Arguments:

  • cleanup_test_repository

    Whether the test repository created in order to run a test should be destroyed at the end of the test (default: 1).

  • config

    Elements to add to the .githooksrc file set up at the root of the test repository.

  • hooks

    An arrayref of the names of the hooks to set up for this test (for example, commit-msg).

  • plugins

    An arrayref of the module names of the plugins to run for this test (for example, App::GitHooks::Plugins::Test::CustomReply).

ok_reset_githooksrc()

Ensures that an empty .githooksrc is used.

ok_reset_githooksrc();

Arguments:

  • content (optional)

    Content for the .githooksrc file.

    By default, this function generates an empty .githooksrc file, which has the effect of using the defaults of App::GitHooks.

test_hook()

Test a git hook.

App::GitHooks::Test::test_hook(
	tests                   => \@tests,
	hook_name               => $hook_name,
	plugins                 => \@plugins,
	cleanup_test_repository => $cleanup_test_repository, # default 1
);

Mandatory arguments:

  • tests

    A set of tests to run.

    # TODO: document tests format.

  • hook_name

    The name of the git hook to test (for example, commit-msg).

  • plugins

    An arrayref of the module names of the plugins to run for this test (for example, App::GitHooks::Plugins::Test::CustomReply).

Optional arguments:

  • cleanup_test_repository

    Whether the test repository created in order to run a test should be destroyed at the end of the test (default: 1).

BUGS

Please report any bugs or feature requests through the web interface at https://github.com/guillaumeaubert/App-GitHooks/issues/new. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

perldoc App::GitHooks::Test

You can also look for information at:

AUTHOR

Guillaume Aubert, <aubertg at cpan.org>.

COPYRIGHT & LICENSE

Copyright 2013-2017 Guillaume Aubert.

This code is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the LICENSE file for more details.