1
0
mirror of https://github.com/nicoverbruggen/phpmon.git synced 2026-04-01 09:10:08 +02:00

♻️ All unit tests pass w/ DI container

This commit is contained in:
2025-10-16 14:03:16 +02:00
parent 79a23a2af2
commit 5b63211746
49 changed files with 349 additions and 206 deletions

View File

@@ -9,13 +9,11 @@
import XCTest
class FeatureTestCase: XCTestCase {
// TODO: make fake filesystem accessible via test case
public func assertFileSystemHas(
_ path: String,
file: StaticString = #filePath,
line: UInt = #line,
fs: TestableFileSystem
in fs: TestableFileSystem
) {
XCTAssertTrue(fs.files.keys.contains(path), file: file, line: line)
}
@@ -24,7 +22,7 @@ class FeatureTestCase: XCTestCase {
_ path: String,
file: StaticString = #filePath,
line: UInt = #line,
fs: TestableFileSystem
in fs: TestableFileSystem
) {
XCTAssertFalse(fs.files.keys.contains(path), file: file, line: line)
}
@@ -34,7 +32,7 @@ class FeatureTestCase: XCTestCase {
contents: String,
file: StaticString = #filePath,
line: UInt = #line,
fs: TestableFileSystem
in fs: TestableFileSystem
) {
XCTAssertEqual(contents, fs.files[path]?.content, file: file, line: line)
}

View File

@@ -9,39 +9,36 @@
import XCTest
final class InternalSwitcherTest: FeatureTestCase {
public func testDefaultPhpFpmPoolIsMoved() async {
ActiveFileSystem.useTestable([
let c = Container.fake(files: [
"/opt/homebrew/etc/php/8.1/php-fpm.d/www.conf": .fake(.text)
])
]), fs = c.filesystem as! TestableFileSystem
let outcome = await InternalSwitcher().disableDefaultPhpFpmPool("8.1")
let outcome = await InternalSwitcher(container: c).disableDefaultPhpFpmPool("8.1")
XCTAssertTrue(outcome)
assertFileSystemHas("/opt/homebrew/etc/php/8.1/php-fpm.d/www.conf.disabled-by-phpmon")
assertFileSystemDoesNotHave("/opt/homebrew/etc/php/8.1/php-fpm.d/www.conf")
assertFileSystemHas("/opt/homebrew/etc/php/8.1/php-fpm.d/www.conf.disabled-by-phpmon", in: fs)
assertFileSystemDoesNotHave("/opt/homebrew/etc/php/8.1/php-fpm.d/www.conf", in: fs)
}
public func testExistingDisabledByPhpMonFileIsRemoved() async {
ActiveFileSystem.useTestable([
let c = Container.fake(files: [
"/opt/homebrew/etc/php/8.1/php-fpm.d/www.conf": .fake(.text, "system generated"),
"/opt/homebrew/etc/php/8.1/php-fpm.d/www.conf.disabled-by-phpmon": .fake(.text, "phpmon generated")
])
]), fs = c.filesystem as! TestableFileSystem
assertFileHasContents(
"/opt/homebrew/etc/php/8.1/php-fpm.d/www.conf.disabled-by-phpmon",
contents: "phpmon generated"
)
assertFileHasContents("/opt/homebrew/etc/php/8.1/php-fpm.d/www.conf.disabled-by-phpmon",
contents: "phpmon generated", in: fs)
let outcome = await InternalSwitcher().disableDefaultPhpFpmPool("8.1")
let outcome = await InternalSwitcher(container: c).disableDefaultPhpFpmPool("8.1")
XCTAssertTrue(outcome)
assertFileSystemHas("/opt/homebrew/etc/php/8.1/php-fpm.d/www.conf.disabled-by-phpmon")
assertFileSystemDoesNotHave("/opt/homebrew/etc/php/8.1/php-fpm.d/www.conf")
assertFileSystemHas("/opt/homebrew/etc/php/8.1/php-fpm.d/www.conf.disabled-by-phpmon", in: fs)
assertFileSystemDoesNotHave("/opt/homebrew/etc/php/8.1/php-fpm.d/www.conf", in: fs)
assertFileHasContents(
"/opt/homebrew/etc/php/8.1/php-fpm.d/www.conf.disabled-by-phpmon",
contents: "system generated"
contents: "system generated", in: fs
)
}