feat: add source tests for all wrapper sources
This commit is contained in:
@@ -0,0 +1,73 @@
|
|||||||
|
// Package sourcetest provides shared smoke-test helpers for catalogue sources.
|
||||||
|
// Config checks (Name, Lang, ID) always run. Network calls are skipped under -short.
|
||||||
|
package sourcetest
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/source"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Run verifies source metadata and, unless -short is set, calls GetPopularManga
|
||||||
|
// and GetLatestUpdates (when supported) against the live site.
|
||||||
|
func Run(t *testing.T, s source.CatalogueSource, wantName, wantLang string) {
|
||||||
|
t.Helper()
|
||||||
|
|
||||||
|
if s == nil {
|
||||||
|
t.Fatal("source is nil")
|
||||||
|
}
|
||||||
|
|
||||||
|
if got := s.Name(); got != wantName {
|
||||||
|
t.Errorf("Name() = %q, want %q", got, wantName)
|
||||||
|
}
|
||||||
|
if got := s.Lang(); got != wantLang {
|
||||||
|
t.Errorf("Lang() = %q, want %q", got, wantLang)
|
||||||
|
}
|
||||||
|
if s.ID() == 0 {
|
||||||
|
t.Error("ID() == 0")
|
||||||
|
}
|
||||||
|
|
||||||
|
if testing.Short() {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
t.Run("GetPopularManga", func(t *testing.T) {
|
||||||
|
page, err := s.GetPopularManga(1)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("GetPopularManga(1): %v", err)
|
||||||
|
}
|
||||||
|
if len(page.Mangas) == 0 {
|
||||||
|
t.Fatal("GetPopularManga returned 0 results")
|
||||||
|
}
|
||||||
|
for i, m := range page.Mangas {
|
||||||
|
if m.Title == "" {
|
||||||
|
t.Errorf("manga[%d].Title is empty", i)
|
||||||
|
}
|
||||||
|
if m.URL == "" {
|
||||||
|
t.Errorf("manga[%d].URL is empty", i)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
if !s.SupportsLatest() {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
t.Run("GetLatestUpdates", func(t *testing.T) {
|
||||||
|
page, err := s.GetLatestUpdates(1)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("GetLatestUpdates(1): %v", err)
|
||||||
|
}
|
||||||
|
if len(page.Mangas) == 0 {
|
||||||
|
t.Fatal("GetLatestUpdates returned 0 results")
|
||||||
|
}
|
||||||
|
for i, m := range page.Mangas {
|
||||||
|
if m.Title == "" {
|
||||||
|
t.Errorf("manga[%d].Title is empty", i)
|
||||||
|
}
|
||||||
|
if m.URL == "" {
|
||||||
|
t.Errorf("manga[%d].URL is empty", i)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
Executable
+272
@@ -0,0 +1,272 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# test-sources.sh — run source integration tests inside the compose network.
|
||||||
|
#
|
||||||
|
# Usage:
|
||||||
|
# ./scripts/test-sources.sh # run all source packages
|
||||||
|
# ./scripts/test-sources.sh ./sources/en/... # run specific packages
|
||||||
|
# ./scripts/test-sources.sh -short # metadata-only, no network calls
|
||||||
|
#
|
||||||
|
# Environment:
|
||||||
|
# PARALLELISM number of packages to test in parallel (default: 4)
|
||||||
|
# PKG_TIMEOUT per-package timeout (default: 120s)
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
REPO_ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
||||||
|
NETWORK="goyomi_goyomi_dev"
|
||||||
|
FLARESOLVERR_SERVICE="goyomi-flaresolverr-1"
|
||||||
|
COMPOSE_FILE="$REPO_ROOT/compose.yml"
|
||||||
|
GO_IMAGE="golang:1.26"
|
||||||
|
PARALLELISM="${PARALLELISM:-4}"
|
||||||
|
PKG_TIMEOUT="${PKG_TIMEOUT:-120s}"
|
||||||
|
LOGS_DIR="$REPO_ROOT/internal/sourcetest/logs"
|
||||||
|
RUN_TIMESTAMP="$(date '+%Y-%m-%dT%H-%M-%S')"
|
||||||
|
SUMMARY_LOG="$LOGS_DIR/$RUN_TIMESTAMP.log"
|
||||||
|
|
||||||
|
# --- helpers -----------------------------------------------------------------
|
||||||
|
|
||||||
|
info() { printf '\033[1;34m[info]\033[0m %s\n' "$*"; }
|
||||||
|
ok() { printf '\033[1;32m[ok]\033[0m %s\n' "$*"; }
|
||||||
|
warn() { printf '\033[1;33m[warn]\033[0m %s\n' "$*"; }
|
||||||
|
die() { printf '\033[1;31m[error]\033[0m %s\n' "$*" >&2; exit 1; }
|
||||||
|
|
||||||
|
# --- write Python helpers to temp files --------------------------------------
|
||||||
|
|
||||||
|
PRINTER_PY="$(mktemp /tmp/goyomi-printer-XXXXXX.py)"
|
||||||
|
SUMMARY_PY="$(mktemp /tmp/goyomi-summary-XXXXXX.py)"
|
||||||
|
JSON_LOG="$(mktemp /tmp/goyomi-test-XXXXXX.json)"
|
||||||
|
trap 'rm -f "$PRINTER_PY" "$SUMMARY_PY" "$JSON_LOG"' EXIT
|
||||||
|
|
||||||
|
# Live streaming printer: reads JSON events from stdin, pretty-prints to terminal,
|
||||||
|
# and saves all events to the log file for the summary step.
|
||||||
|
cat > "$PRINTER_PY" << 'PYEOF'
|
||||||
|
import sys, json
|
||||||
|
|
||||||
|
log_path = sys.argv[1]
|
||||||
|
|
||||||
|
RESET = '\033[0m'
|
||||||
|
GREEN = '\033[1;32m'
|
||||||
|
RED = '\033[1;31m'
|
||||||
|
YELLOW = '\033[1;33m'
|
||||||
|
GRAY = '\033[0;37m'
|
||||||
|
|
||||||
|
with open(log_path, 'w') as log_file:
|
||||||
|
for raw in sys.stdin:
|
||||||
|
raw = raw.rstrip()
|
||||||
|
log_file.write(raw + '\n')
|
||||||
|
log_file.flush()
|
||||||
|
|
||||||
|
try:
|
||||||
|
ev = json.loads(raw)
|
||||||
|
except json.JSONDecodeError:
|
||||||
|
print(raw, flush=True)
|
||||||
|
continue
|
||||||
|
|
||||||
|
action = ev.get('Action', '')
|
||||||
|
pkg = ev.get('Package', '')
|
||||||
|
test = ev.get('Test', '')
|
||||||
|
output = ev.get('Output', '').rstrip()
|
||||||
|
short = pkg.split('/')[-1] if pkg else ''
|
||||||
|
|
||||||
|
if action == 'output':
|
||||||
|
skip_prefixes = ('=== RUN', '=== PAUSE', '=== CONT', '--- PASS', '--- FAIL', 'ok ')
|
||||||
|
skip_exact = {'PASS', 'FAIL', ''}
|
||||||
|
if output and output not in skip_exact and not any(output.startswith(p) for p in skip_prefixes):
|
||||||
|
print(f'{GRAY}{output}{RESET}', flush=True)
|
||||||
|
elif action == 'pass' and not test:
|
||||||
|
elapsed = ev.get('Elapsed', 0)
|
||||||
|
print(f'{GREEN}PASS{RESET} {short:<45} ({elapsed:.2f}s)', flush=True)
|
||||||
|
elif action == 'fail' and not test:
|
||||||
|
elapsed = ev.get('Elapsed', 0)
|
||||||
|
print(f'{RED}FAIL{RESET} {short:<45} ({elapsed:.2f}s)', flush=True)
|
||||||
|
elif action == 'skip' and not test:
|
||||||
|
print(f'{YELLOW}SKIP{RESET} {short}', flush=True)
|
||||||
|
PYEOF
|
||||||
|
|
||||||
|
# Summary parser: reads the saved JSON log, prints pass/fail counts to terminal,
|
||||||
|
# and writes a plain-text copy to the summary log file.
|
||||||
|
# argv: <json_log_path> <summary_log_path>
|
||||||
|
cat > "$SUMMARY_PY" << 'PYEOF'
|
||||||
|
import sys, json, re
|
||||||
|
|
||||||
|
json_path = sys.argv[1]
|
||||||
|
summary_path = sys.argv[2]
|
||||||
|
|
||||||
|
RESET = '\033[0m'
|
||||||
|
GREEN = '\033[1;32m'
|
||||||
|
RED = '\033[1;31m'
|
||||||
|
BOLD = '\033[1m'
|
||||||
|
|
||||||
|
passed = []
|
||||||
|
failed = {}
|
||||||
|
cur_sub = {}
|
||||||
|
pkg_errs = {}
|
||||||
|
|
||||||
|
with open(json_path) as f:
|
||||||
|
for raw in f:
|
||||||
|
try:
|
||||||
|
ev = json.loads(raw)
|
||||||
|
except:
|
||||||
|
continue
|
||||||
|
|
||||||
|
action = ev.get('Action', '')
|
||||||
|
pkg = ev.get('Package', '')
|
||||||
|
test = ev.get('Test', '')
|
||||||
|
output = ev.get('Output', '').rstrip()
|
||||||
|
|
||||||
|
if action == 'run' and test and '/' in test:
|
||||||
|
cur_sub[pkg] = test.split('/', 1)[1]
|
||||||
|
|
||||||
|
elif action == 'output' and test:
|
||||||
|
m = re.match(r'^\s+\S+\.go:\d+:\s+(.*)', output)
|
||||||
|
if m:
|
||||||
|
subtest = cur_sub.get(pkg, test.split('/', 1)[1] if '/' in test else test)
|
||||||
|
pkg_errs.setdefault(pkg, {}).setdefault(subtest, []).append(m.group(1).strip())
|
||||||
|
|
||||||
|
elif action == 'pass' and not test:
|
||||||
|
passed.append(pkg)
|
||||||
|
|
||||||
|
elif action == 'fail' and not test:
|
||||||
|
failed[pkg] = pkg_errs.get(pkg, {})
|
||||||
|
|
||||||
|
total = len(passed) + len(failed)
|
||||||
|
|
||||||
|
# Build plain-text lines (no ANSI codes) for the log file
|
||||||
|
plain_lines = []
|
||||||
|
plain_lines.append('')
|
||||||
|
plain_lines.append('=' * 60)
|
||||||
|
plain_lines.append(' TEST SUMMARY')
|
||||||
|
plain_lines.append('=' * 60)
|
||||||
|
plain_lines.append(f' Packages tested : {total}')
|
||||||
|
plain_lines.append(f' Passed : {len(passed)}')
|
||||||
|
plain_lines.append(f' Failed : {len(failed)}')
|
||||||
|
|
||||||
|
if failed:
|
||||||
|
plain_lines.append('')
|
||||||
|
plain_lines.append('Failed packages:')
|
||||||
|
for pkg in sorted(failed):
|
||||||
|
short = pkg.split('/')[-1]
|
||||||
|
subtests = failed[pkg]
|
||||||
|
if subtests:
|
||||||
|
for subtest, errors in subtests.items():
|
||||||
|
reason = '; '.join(errors) if errors else '(no message captured)'
|
||||||
|
plain_lines.append(f' ✗ {short} [{subtest}] {reason}')
|
||||||
|
else:
|
||||||
|
plain_lines.append(f' ✗ {short} (build error or panic)')
|
||||||
|
|
||||||
|
plain_lines.append('')
|
||||||
|
if not failed:
|
||||||
|
plain_lines.append(f'All {total} packages passed.')
|
||||||
|
else:
|
||||||
|
plain_lines.append(f'{len(failed)} package(s) failed.')
|
||||||
|
plain_lines.append('')
|
||||||
|
|
||||||
|
# Print to terminal with colours
|
||||||
|
colour = {
|
||||||
|
'Passed': GREEN, 'Failed': RED,
|
||||||
|
'Failed packages:': RED,
|
||||||
|
'All': GREEN,
|
||||||
|
}
|
||||||
|
for line in plain_lines:
|
||||||
|
if line.startswith(' Passed'):
|
||||||
|
print(f' {GREEN}Passed{RESET}' + line[9:], flush=True)
|
||||||
|
elif line.startswith(' Failed :'):
|
||||||
|
print(f' {RED}Failed{RESET} :' + line[19:], flush=True)
|
||||||
|
elif line.startswith('Failed packages:'):
|
||||||
|
print(f'{RED}Failed packages:{RESET}', flush=True)
|
||||||
|
elif line.startswith(' ✗'):
|
||||||
|
print(f' {RED}✗{RESET}' + line[3:], flush=True)
|
||||||
|
elif line.startswith('All') and 'passed' in line:
|
||||||
|
print(f'{GREEN}{line}{RESET}', flush=True)
|
||||||
|
elif line.startswith('='):
|
||||||
|
print(BOLD + line + RESET, flush=True)
|
||||||
|
elif line.strip() == 'TEST SUMMARY':
|
||||||
|
print(BOLD + line + RESET, flush=True)
|
||||||
|
else:
|
||||||
|
print(line, flush=True)
|
||||||
|
|
||||||
|
# Write plain text to summary log file
|
||||||
|
with open(summary_path, 'w') as f:
|
||||||
|
f.write('\n'.join(plain_lines) + '\n')
|
||||||
|
if failed:
|
||||||
|
f.write('\nPassed packages:\n')
|
||||||
|
for pkg in sorted(passed):
|
||||||
|
f.write(f' ✓ {pkg.split("/")[-1]}\n')
|
||||||
|
PYEOF
|
||||||
|
|
||||||
|
# --- check docker daemon -----------------------------------------------------
|
||||||
|
|
||||||
|
if ! docker info > /dev/null 2>&1; then
|
||||||
|
die "Docker daemon is not running. Start OrbStack (or Docker Desktop) first."
|
||||||
|
fi
|
||||||
|
ok "Docker daemon is running"
|
||||||
|
|
||||||
|
# --- ensure flaresolverr is up -----------------------------------------------
|
||||||
|
|
||||||
|
if docker inspect "$FLARESOLVERR_SERVICE" --format '{{.State.Running}}' 2>/dev/null | grep -q true; then
|
||||||
|
ok "FlareSolverr container is already running"
|
||||||
|
else
|
||||||
|
info "Starting FlareSolverr via docker compose..."
|
||||||
|
docker compose -f "$COMPOSE_FILE" up -d flaresolverr
|
||||||
|
for i in $(seq 1 20); do
|
||||||
|
if docker inspect "$FLARESOLVERR_SERVICE" --format '{{.State.Running}}' 2>/dev/null | grep -q true; then
|
||||||
|
ok "FlareSolverr is up"; break
|
||||||
|
fi
|
||||||
|
sleep 2
|
||||||
|
if [ "$i" -eq 20 ]; then
|
||||||
|
die "FlareSolverr did not start in time"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
# --- ensure network exists ---------------------------------------------------
|
||||||
|
|
||||||
|
if ! docker network inspect "$NETWORK" > /dev/null 2>&1; then
|
||||||
|
die "Docker network '$NETWORK' not found. Run 'docker compose up -d' first."
|
||||||
|
fi
|
||||||
|
ok "Network $NETWORK exists"
|
||||||
|
|
||||||
|
# --- resolve packages to test ------------------------------------------------
|
||||||
|
|
||||||
|
SHORT_FLAG=""
|
||||||
|
if [ $# -eq 0 ]; then
|
||||||
|
PACKAGES="./sources/en/... ./sources/all/..."
|
||||||
|
elif [ "$1" = "-short" ]; then
|
||||||
|
PACKAGES="./sources/en/... ./sources/all/..."
|
||||||
|
SHORT_FLAG="-short"
|
||||||
|
shift
|
||||||
|
else
|
||||||
|
PACKAGES="$*"
|
||||||
|
fi
|
||||||
|
|
||||||
|
info "Packages : $PACKAGES"
|
||||||
|
info "Parallel : $PARALLELISM"
|
||||||
|
info "Timeout : $PKG_TIMEOUT"
|
||||||
|
[ -n "$SHORT_FLAG" ] && info "Mode : short (metadata only)" || info "Mode : full (live network)"
|
||||||
|
|
||||||
|
# --- run tests ---------------------------------------------------------------
|
||||||
|
|
||||||
|
info "Running tests..."
|
||||||
|
echo
|
||||||
|
|
||||||
|
set +e
|
||||||
|
docker run --rm \
|
||||||
|
--network "$NETWORK" \
|
||||||
|
-e FLARESOLVERR_URL=http://flaresolverr:8191 \
|
||||||
|
-v "$REPO_ROOT":/workspace \
|
||||||
|
-v goyomi_go_mod_cache:/go/pkg/mod \
|
||||||
|
-v goyomi_go_build_cache:/root/.cache/go-build \
|
||||||
|
-w /workspace \
|
||||||
|
"$GO_IMAGE" \
|
||||||
|
go test -json -count=1 -p "$PARALLELISM" -timeout "$PKG_TIMEOUT" $SHORT_FLAG $PACKAGES \
|
||||||
|
| python3 -u "$PRINTER_PY" "$JSON_LOG"
|
||||||
|
EXIT_CODE=$?
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# --- print summary -----------------------------------------------------------
|
||||||
|
|
||||||
|
mkdir -p "$LOGS_DIR"
|
||||||
|
python3 "$SUMMARY_PY" "$JSON_LOG" "$SUMMARY_LOG"
|
||||||
|
info "Summary log written to internal/sourcetest/logs/$RUN_TIMESTAMP.log"
|
||||||
|
|
||||||
|
exit $EXIT_CODE
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package comicsvalley
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Comics Valley", "all") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package coomer
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Coomer", "all") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package elitebabes
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Elite Babes", "all") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package femjoyhunter
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Femjoy Hunter", "all") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package ftvhunter
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "FTV Hunter", "all") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package hentaihand
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "HentaiHand", "all") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package hniscantrad
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "HNI-Scantrad", "all") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package joymiihub
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Joymii Hub", "all") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package kemono
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Kemono", "all") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package mangacrazy
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "MangaCrazy", "all") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package mangataro
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "MangaTaro", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package metarthunter
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Metart Hunter", "all") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package playmatehunter
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Playmate Hunter", "all") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package xarthunter
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "XArt Hunter", "all") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package aquamanga
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Aqua Manga", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package arcrelight
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Arc-Relight", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package arenascans
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Arena Scans", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package artlapsa
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Art Lapsa", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package assortedscans
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Assorted Scans", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package baektoons
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Baek Toons", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package bakkin
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Bakkin", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package beehentai
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "BeeHentai", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package boratscans
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Borat Scans", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package boxmanhwa
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "BoxManhwa", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package bunmanga
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Bun Manga", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package cocomic
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Cocomic", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package comicsland
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Comics Land", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package crowscans
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Crow Scans", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package cucumbermanga
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Cucumber Manga", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package dankefurslesen
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Danke fürs Lesen", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package decadencescans
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Decadence Scans", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package divascans
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Diva Scans", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package eightmuses
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "8Muses", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package elftoon
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Elf Toon", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package epicmanga
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "EpicManga", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package erisscans
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Eris Scans", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package ero18x
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Ero18x", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package evilflowers
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Evil Flowers", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package fablescans
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Fable Scans", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package gakamangas
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "GakaMangas", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package galaxydegenscans
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "GalaxyDegenScans", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package guya
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Guya", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package hachirumi
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Hachirumi", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package hentai4free
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Hentai4Free", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package hijalascans
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Hijala Scans", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package jinmangas
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Jinmangas", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package kaizenscan
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Kaizen Scan", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package kaliscancom
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "KaliScan.com", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package kaliscanio
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "KaliScan.io", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package kaliscanme
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "KaliScan.me", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package kewnscans
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Kewn Scans", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package kingofshojo
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "King of Shojo", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package kissmangain
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Kissmanga.in", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package kunmanga
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Kun Manga", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package lhtranslation
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "LHTranslation", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package linkmanga
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "LinkManga", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package lunatoons
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Luna Toons", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package manga18x
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Manga 18x", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package mangabuddy
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "MangaBuddy", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package mangabuddyme
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "MangaBuddy.me", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package mangacute
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "MangaCute", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package mangafab
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "MangaFab", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package mangaforest
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "MangaForest", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package mangafoxfun
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "MangaFox.fun", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package mangagg
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "MangaGG", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package mangahe
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "MangaHe", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package mangahentai
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Manga Hentai", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package mangahereonl
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "MangaHere.onl", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package mangahubio
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "MangaHub", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package mangakakalotfun
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Mangakakalot.fun", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package mangamonk
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "MangaMonk", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package manganel
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "MangaNel", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package mangaonlinefun
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "MangaOnline.fun", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package mangapandaonl
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "MangaPanda.onl", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package mangareadersite
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "MangaReader.site", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package mangasaga
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "MangaSaga", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package mangaspin
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "MangaSpin", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package mangatoday
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "MangaToday", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package mangaxyz
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "MangaXYZ", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package manhuanow
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "ManhuaNow", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package manhuasite
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "ManhuaSite", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package manhwalover
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Manhwalover", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package manhwareads
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Manhwa Reads", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package manhwatop
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Manhwatop", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package manhwax
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Manhwax", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package mgjinx
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "MGJinx", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package mistscans
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Mist Scans", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package monochromescans
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Monochrome Scans", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package necroscans
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Necro Scans", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package nyanukafe
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Nyanu Kafe", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package nyxscans
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Nyx Scans", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package octopusmanga
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "OctopusManga", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package onemangaco
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "1Manga.co", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package onemangainfo
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "OneManga.info", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package orionscans
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Orion Scans", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package pawmanga
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Paw Manga", "en") }
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package ravenscans
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"goyomi/internal/sourcetest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSource(t *testing.T) { sourcetest.Run(t, New(), "Raven Scans", "en") }
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user