Skip to content

Commit 5811ee5

Browse files
committed
updates adding tests in and updating readme/composer file
1 parent 7b27c37 commit 5811ee5

6 files changed

Lines changed: 831 additions & 20 deletions

File tree

.github/workflows/tests.yml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name: Tests
2+
3+
on:
4+
push:
5+
branches: [master]
6+
pull_request:
7+
branches: [master]
8+
9+
jobs:
10+
tests:
11+
runs-on: ubuntu-latest
12+
strategy:
13+
matrix:
14+
php-version: ['8.2', '8.3', '8.4']
15+
16+
name: PHP ${{ matrix.php-version }}
17+
18+
steps:
19+
- name: Checkout code
20+
uses: actions/checkout@v4
21+
22+
- name: Setup PHP
23+
uses: shivammathur/setup-php@v2
24+
with:
25+
php-version: ${{ matrix.php-version }}
26+
extensions: soap
27+
coverage: none
28+
29+
- name: Install dependencies
30+
run: composer install --prefer-dist --no-progress
31+
32+
- name: Run tests
33+
run: vendor/bin/phpunit

README.md

Lines changed: 40 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,54 @@
1-
# Kayako handling plugin for MyAdmin
1+
# MyAdmin Kayako Support Plugin
22

3-
Kayako handling plugin for MyAdmin
3+
[![Build Status](https://github.com/detain/myadmin-kayako-support/actions/workflows/tests.yml/badge.svg)](https://github.com/detain/myadmin-kayako-support/actions)
4+
[![Latest Stable Version](https://poser.pugx.org/detain/myadmin-kayako-support/version)](https://packagist.org/packages/detain/myadmin-kayako-support)
5+
[![Total Downloads](https://poser.pugx.org/detain/myadmin-kayako-support/downloads)](https://packagist.org/packages/detain/myadmin-kayako-support)
6+
[![License](https://poser.pugx.org/detain/myadmin-kayako-support/license)](https://packagist.org/packages/detain/myadmin-kayako-support)
47

5-
## Build Status and Code Analysis
8+
A MyAdmin plugin that integrates with the Kayako ticket and helpdesk system. It provides event-driven hooks for API registration, requirement loading, and settings management within the MyAdmin platform. The package exposes SOAP-compatible API functions for creating, listing, viewing, and replying to support tickets through Kayako.
69

7-
Site | Status
8-
--------------|---------------------------
9-
![Travis-CI](http://i.is.cc/storage/GYd75qN.png "Travis-CI") | [![Build Status](https://travis-ci.org/detain/myadmin-kayako-support.svg?branch=master)](https://travis-ci.org/detain/myadmin-kayako-support)
10-
![CodeClimate](http://i.is.cc/storage/GYlageh.png "CodeClimate") | [![Code Climate](https://codeclimate.com/github/detain/myadmin-kayako-support/badges/gpa.svg)](https://codeclimate.com/github/detain/myadmin-kayako-support) [![Test Coverage](https://codeclimate.com/github/detain/myadmin-kayako-support/badges/coverage.svg)](https://codeclimate.com/github/detain/myadmin-kayako-support/coverage) [![Issue Count](https://codeclimate.com/github/detain/myadmin-kayako-support/badges/issue_count.svg)](https://codeclimate.com/github/detain/myadmin-kayako-support)
11-
![Scrutinizer](http://i.is.cc/storage/GYeUnux.png "Scrutinizer") | [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/myadmin-plugins/kayako-support/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/myadmin-plugins/kayako-support/?branch=master) [![Code Coverage](https://scrutinizer-ci.com/g/myadmin-plugins/kayako-support/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/myadmin-plugins/kayako-support/?branch=master) [![Build Status](https://scrutinizer-ci.com/g/myadmin-plugins/kayako-support/badges/build.png?b=master)](https://scrutinizer-ci.com/g/myadmin-plugins/kayako-support/build-status/master)
12-
![Codacy](http://i.is.cc/storage/GYi66Cx.png "Codacy") | [![Codacy Badge](https://api.codacy.com/project/badge/Grade/226251fc068f4fd5b4b4ef9a40011d06)](https://www.codacy.com/app/detain/myadmin-kayako-support) [![Codacy Badge](https://api.codacy.com/project/badge/Coverage/25fa74eb74c947bf969602fcfe87e349)](https://www.codacy.com/app/detain/myadmin-kayako-support?utm_source=github.com&utm_medium=referral&utm_content=detain/myadmin-kayako-support&utm_campaign=Badge_Coverage)
13-
![Coveralls](http://i.is.cc/storage/GYjNSim.png "Coveralls") | [![Coverage Status](https://coveralls.io/repos/github/detain/db_abstraction/badge.svg?branch=master)](https://coveralls.io/github/detain/myadmin-kayako-support?branch=master)
14-
![Packagist](http://i.is.cc/storage/GYacBEX.png "Packagist") | [![Latest Stable Version](https://poser.pugx.org/detain/myadmin-kayako-support/version)](https://packagist.org/packages/detain/myadmin-kayako-support) [![Total Downloads](https://poser.pugx.org/detain/myadmin-kayako-support/downloads)](https://packagist.org/packages/detain/myadmin-kayako-support) [![Latest Unstable Version](https://poser.pugx.org/detain/myadmin-kayako-support/v/unstable)](//packagist.org/packages/detain/myadmin-kayako-support) [![Monthly Downloads](https://poser.pugx.org/detain/myadmin-kayako-support/d/monthly)](https://packagist.org/packages/detain/myadmin-kayako-support) [![Daily Downloads](https://poser.pugx.org/detain/myadmin-kayako-support/d/daily)](https://packagist.org/packages/detain/myadmin-kayako-support) [![License](https://poser.pugx.org/detain/myadmin-kayako-support/license)](https://packagist.org/packages/detain/myadmin-kayako-support)
10+
## Features
1511

12+
- Registers ticket management API endpoints (create, list, view, reply)
13+
- Hooks into MyAdmin's event dispatcher for seamless plugin integration
14+
- Manages Kayako connection settings (API URL, key, secret)
15+
- Input validation with descriptive error messages on all API calls
16+
- Pagination support for ticket listing
1617

1718
## Installation
1819

19-
Install with composer like
20+
Install with Composer:
2021

2122
```sh
2223
composer require detain/myadmin-kayako-support
2324
```
2425

25-
## License
26+
## Configuration
27+
28+
The plugin uses three configuration constants that should be defined in your MyAdmin environment:
29+
30+
- `KAYAKO_API_URL` - The base URL for the Kayako REST API
31+
- `KAYAKO_API_KEY` - Your Kayako API key
32+
- `KAYAKO_API_SECRET` - Your Kayako API secret
33+
34+
## Usage
2635

27-
The Kayako handling plugin for MyAdmin class is licensed under the LGPL-v2.1 license.
36+
The plugin registers itself through MyAdmin's event dispatcher. The `Plugin::getHooks()` method returns the event-to-handler mappings:
37+
38+
```php
39+
use Detain\MyAdminKayako\Plugin;
40+
41+
$hooks = Plugin::getHooks();
42+
// Returns: ['api.register' => ..., 'function.requirements' => ..., 'system.settings' => ...]
43+
```
44+
45+
## Running Tests
46+
47+
```sh
48+
composer install
49+
vendor/bin/phpunit
50+
```
51+
52+
## License
2853

54+
Licensed under the LGPL-2.1. See [LICENSE](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html) for details.

composer.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,16 @@
2525
"detain/myadmin-plugin-installer": "dev-master"
2626
},
2727
"require-dev": {
28-
"phpunit/phpunit": "*",
29-
"phpunit/phpunit-mock-objects": "*",
30-
"vlucas/phpdotenv": "*",
31-
"codeclimate/php-test-reporter": "dev-master",
32-
"satooshi/php-coveralls": "*",
33-
"codacy/coverage": "dev-master"
28+
"phpunit/phpunit": "^9.6"
3429
},
3530
"autoload": {
3631
"psr-4": {
3732
"Detain\\MyAdminKayako\\": "src/"
3833
}
34+
},
35+
"autoload-dev": {
36+
"psr-4": {
37+
"Detain\\MyAdminKayako\\Tests\\": "tests/"
38+
}
3939
}
4040
}

phpunit.xml.dist

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd"
4+
bootstrap="vendor/autoload.php"
5+
colors="true"
6+
verbose="true"
7+
failOnRisky="true"
8+
failOnWarning="true"
9+
beStrictAboutOutputDuringTests="true"
10+
>
11+
<testsuites>
12+
<testsuite name="Unit">
13+
<directory>tests</directory>
14+
</testsuite>
15+
</testsuites>
16+
<coverage processUncoveredFiles="true">
17+
<include>
18+
<directory suffix=".php">src</directory>
19+
</include>
20+
</coverage>
21+
</phpunit>

0 commit comments

Comments
 (0)