. * * @package LibreNMS * @link http://librenms.org * @copyright 2018 Neil Lathwood * @author Neil Lathwood */ namespace LibreNMS\Tests; use Symfony\Component\Yaml\Yaml; class DocTest extends TestCase { private $hidden_pages = [ 'API/API-Docs.md', 'Alerting/Old_Templates.md', 'Extensions/Alerting.md', 'Extensions/Email-Alerting.md', 'Extensions/Graphite.md', 'Extensions/InfluxDB.md', 'Extensions/OpenTSDB.md', 'Extensions/Port-Description-Parser.md', 'Extensions/Prometheus.md', 'Extensions/RRDCached-Security.md', 'General/Changelogs/2013.md', 'General/Changelogs/2014.md', 'General/Changelogs/2015.md', 'General/Changelogs/2016.md', 'General/Contributing.md', 'General/Credits.md', 'Installation/Installation-(Debian-Ubuntu).md', 'Installation/Installation-(RHEL-CentOS).md', 'Installation/Installation-CentOS-6-Apache-Nginx.md', 'Installation/Installation-Ubuntu-1404-Apache.md', 'Installation/Installation-Ubuntu-1404-Lighttpd.md', 'Installation/Installation-Ubuntu-1404-Nginx.md', 'Installation/Installation-Ubuntu-1604-Apache.md', 'Installation/Installation-Ubuntu-1604-Nginx.md', 'Installation/Installing-LibreNMS.md', 'Support/Support-New-OS.md', ]; public function testDocExist() { $mkdocs = Yaml::parse(file_get_contents(__DIR__ . '/../mkdocs.yml')); $dir = __DIR__ . '/../doc/'; $files = str_replace($dir, '', rtrim(`find $dir -name '*.md'`)); // check for missing pages collect(explode(PHP_EOL, $files)) ->diff(collect($mkdocs['nav'])->flatten()->merge($this->hidden_pages)) // grab defined pages and diff ->each(function ($missing_doc) { $this->fail("The doc $missing_doc doesn't exist in mkdocs.yml, please add it to the relevant section"); }); } }