@rankcli/agent-runtime 0.0.14 → 0.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +77 -393
- package/dist/index.d.ts +77 -393
- package/dist/index.js +417 -6443
- package/dist/index.mjs +296 -6313
- package/package.json +6 -1
- package/scripts/build-deno.ts +0 -134
- package/src/analyzers/core-web-vitals-analyzer.test.ts +0 -236
- package/src/analyzers/core-web-vitals-analyzer.ts +0 -557
- package/src/analyzers/geo-analyzer.test.ts +0 -310
- package/src/analyzers/geo-analyzer.ts +0 -814
- package/src/analyzers/image-optimization-analyzer.test.ts +0 -145
- package/src/analyzers/image-optimization-analyzer.ts +0 -348
- package/src/analyzers/index.ts +0 -233
- package/src/analyzers/internal-linking-analyzer.test.ts +0 -141
- package/src/analyzers/internal-linking-analyzer.ts +0 -419
- package/src/analyzers/mobile-seo-analyzer.test.ts +0 -140
- package/src/analyzers/mobile-seo-analyzer.ts +0 -455
- package/src/analyzers/security-headers-analyzer.test.ts +0 -115
- package/src/analyzers/security-headers-analyzer.ts +0 -318
- package/src/analyzers/structured-data-analyzer.test.ts +0 -210
- package/src/analyzers/structured-data-analyzer.ts +0 -590
- package/src/audit/ai/analyzer.ts +0 -347
- package/src/audit/ai/index.ts +0 -29
- package/src/audit/ai/prompts/content-analysis.ts +0 -271
- package/src/audit/ai/types.ts +0 -179
- package/src/audit/checks/additional-checks.ts +0 -439
- package/src/audit/checks/ai-citation-worthiness.ts +0 -399
- package/src/audit/checks/ai-content-structure.ts +0 -325
- package/src/audit/checks/ai-readiness.ts +0 -339
- package/src/audit/checks/anchor-text.ts +0 -179
- package/src/audit/checks/answer-conciseness.ts +0 -322
- package/src/audit/checks/asset-minification.ts +0 -270
- package/src/audit/checks/bing-optimization.ts +0 -206
- package/src/audit/checks/brand-mention-optimization.ts +0 -349
- package/src/audit/checks/caching-headers.ts +0 -305
- package/src/audit/checks/canonical-advanced.ts +0 -150
- package/src/audit/checks/canonical-domain.ts +0 -196
- package/src/audit/checks/citation-quality.ts +0 -358
- package/src/audit/checks/client-rendering.ts +0 -542
- package/src/audit/checks/color-contrast.ts +0 -342
- package/src/audit/checks/content-freshness.ts +0 -170
- package/src/audit/checks/content-science.ts +0 -589
- package/src/audit/checks/conversion-elements.ts +0 -526
- package/src/audit/checks/crawlability.ts +0 -220
- package/src/audit/checks/directory-listing.ts +0 -172
- package/src/audit/checks/dom-analysis.ts +0 -191
- package/src/audit/checks/dom-size.ts +0 -246
- package/src/audit/checks/duplicate-content.ts +0 -194
- package/src/audit/checks/eeat-signals.ts +0 -990
- package/src/audit/checks/entity-seo.ts +0 -396
- package/src/audit/checks/featured-snippet.ts +0 -473
- package/src/audit/checks/freshness-signals.ts +0 -443
- package/src/audit/checks/funnel-intent.ts +0 -463
- package/src/audit/checks/hreflang.ts +0 -174
- package/src/audit/checks/html-compliance.ts +0 -302
- package/src/audit/checks/image-dimensions.ts +0 -167
- package/src/audit/checks/images.ts +0 -160
- package/src/audit/checks/indexnow.ts +0 -275
- package/src/audit/checks/interactive-tools.ts +0 -475
- package/src/audit/checks/internal-link-graph.ts +0 -436
- package/src/audit/checks/keyword-analysis.ts +0 -239
- package/src/audit/checks/keyword-cannibalization.ts +0 -385
- package/src/audit/checks/keyword-placement.ts +0 -471
- package/src/audit/checks/links.ts +0 -273
- package/src/audit/checks/llms-txt.ts +0 -224
- package/src/audit/checks/local-seo.ts +0 -296
- package/src/audit/checks/mobile.ts +0 -167
- package/src/audit/checks/modern-images.ts +0 -226
- package/src/audit/checks/navboost-signals.ts +0 -395
- package/src/audit/checks/on-page.ts +0 -209
- package/src/audit/checks/page-resources.ts +0 -285
- package/src/audit/checks/pagination.ts +0 -180
- package/src/audit/checks/performance.ts +0 -153
- package/src/audit/checks/platform-presence.ts +0 -580
- package/src/audit/checks/redirect-analysis.ts +0 -153
- package/src/audit/checks/redirect-chain.ts +0 -389
- package/src/audit/checks/resource-hints.ts +0 -420
- package/src/audit/checks/responsive-css.ts +0 -247
- package/src/audit/checks/responsive-images.ts +0 -396
- package/src/audit/checks/review-ecosystem.ts +0 -415
- package/src/audit/checks/robots-validation.ts +0 -373
- package/src/audit/checks/security-headers.ts +0 -188
- package/src/audit/checks/security.ts +0 -144
- package/src/audit/checks/serp-preview.ts +0 -251
- package/src/audit/checks/site-maturity.ts +0 -453
- package/src/audit/checks/social-meta.test.ts +0 -275
- package/src/audit/checks/social-meta.ts +0 -134
- package/src/audit/checks/soft-404.ts +0 -151
- package/src/audit/checks/structured-data.ts +0 -238
- package/src/audit/checks/tech-detection.ts +0 -496
- package/src/audit/checks/topical-clusters.ts +0 -435
- package/src/audit/checks/tracker-bloat.ts +0 -462
- package/src/audit/checks/tracking-verification.test.ts +0 -371
- package/src/audit/checks/tracking-verification.ts +0 -636
- package/src/audit/checks/url-safety.ts +0 -682
- package/src/audit/deno-entry.ts +0 -66
- package/src/audit/discovery/index.ts +0 -15
- package/src/audit/discovery/link-crawler.ts +0 -233
- package/src/audit/discovery/repo-routes.ts +0 -347
- package/src/audit/engine.ts +0 -627
- package/src/audit/fixes/index.ts +0 -209
- package/src/audit/fixes/social-meta-fixes.test.ts +0 -329
- package/src/audit/fixes/social-meta-fixes.ts +0 -463
- package/src/audit/index.ts +0 -74
- package/src/audit/runner.test.ts +0 -299
- package/src/audit/runner.ts +0 -130
- package/src/audit/types.ts +0 -1963
- package/src/content/featured-snippet.ts +0 -367
- package/src/content/generator.test.ts +0 -534
- package/src/content/generator.ts +0 -501
- package/src/content/headline.ts +0 -317
- package/src/content/index.ts +0 -62
- package/src/content/intent.ts +0 -258
- package/src/content/keyword-density.ts +0 -349
- package/src/content/readability.ts +0 -262
- package/src/executor.ts +0 -336
- package/src/fixer/framework-fixes.test.ts +0 -489
- package/src/fixer/framework-fixes.ts +0 -5287
- package/src/fixer/index.ts +0 -6
- package/src/fixer/schemas.ts +0 -971
- package/src/fixer.ts +0 -642
- package/src/frameworks/detector.test.ts +0 -248
- package/src/frameworks/detector.ts +0 -899
- package/src/frameworks/index.ts +0 -68
- package/src/frameworks/recipes/angular.yaml +0 -171
- package/src/frameworks/recipes/astro.yaml +0 -206
- package/src/frameworks/recipes/django.yaml +0 -180
- package/src/frameworks/recipes/laravel.yaml +0 -137
- package/src/frameworks/recipes/nextjs.yaml +0 -268
- package/src/frameworks/recipes/nuxt.yaml +0 -175
- package/src/frameworks/recipes/rails.yaml +0 -188
- package/src/frameworks/recipes/react.yaml +0 -202
- package/src/frameworks/recipes/sveltekit.yaml +0 -154
- package/src/frameworks/recipes/vue.yaml +0 -137
- package/src/frameworks/recipes/wordpress.yaml +0 -209
- package/src/frameworks/suggestion-engine.ts +0 -357
- package/src/geo/geo-content.test.ts +0 -305
- package/src/geo/geo-content.ts +0 -266
- package/src/geo/geo-history.test.ts +0 -473
- package/src/geo/geo-history.ts +0 -433
- package/src/geo/geo-tracker.test.ts +0 -359
- package/src/geo/geo-tracker.ts +0 -411
- package/src/geo/index.ts +0 -11
- package/src/geo/llm-citation-checker.ts +0 -188
- package/src/git/commit-helper.test.ts +0 -261
- package/src/git/commit-helper.ts +0 -329
- package/src/git/index.ts +0 -12
- package/src/git/pr-helper.test.ts +0 -284
- package/src/git/pr-helper.ts +0 -307
- package/src/index.ts +0 -76
- package/src/keywords/ai-keyword-engine.ts +0 -1062
- package/src/keywords/ai-summarizer.ts +0 -387
- package/src/keywords/ci-mode.ts +0 -555
- package/src/keywords/engine.ts +0 -359
- package/src/keywords/index.ts +0 -151
- package/src/keywords/llm-judge.ts +0 -357
- package/src/keywords/nlp-analysis.ts +0 -706
- package/src/keywords/prioritizer.ts +0 -295
- package/src/keywords/site-crawler.ts +0 -342
- package/src/keywords/sources/autocomplete.ts +0 -139
- package/src/keywords/sources/competitive-search.ts +0 -450
- package/src/keywords/sources/competitor-analysis.ts +0 -374
- package/src/keywords/sources/dataforseo.ts +0 -206
- package/src/keywords/sources/free-sources.ts +0 -294
- package/src/keywords/sources/gsc.ts +0 -123
- package/src/keywords/topic-grouping.ts +0 -327
- package/src/keywords/types.ts +0 -144
- package/src/keywords/wizard.ts +0 -457
- package/src/loader.ts +0 -40
- package/src/ranking/index.ts +0 -5
- package/src/ranking/serp-client.ts +0 -348
- package/src/ranking/tracker.ts +0 -380
- package/src/ranking/types.ts +0 -123
- package/src/reports/index.ts +0 -7
- package/src/reports/report-generator.test.ts +0 -293
- package/src/reports/report-generator.ts +0 -713
- package/src/scheduler/alerts.test.ts +0 -458
- package/src/scheduler/alerts.ts +0 -328
- package/src/scheduler/index.ts +0 -8
- package/src/scheduler/scheduled-audit.test.ts +0 -377
- package/src/scheduler/scheduled-audit.ts +0 -149
- package/src/test/integration-test.ts +0 -325
- package/src/tools/analyzer.ts +0 -373
- package/src/tools/crawl.ts +0 -293
- package/src/tools/files.ts +0 -301
- package/src/tools/h1-fixer.ts +0 -249
- package/src/tools/index.ts +0 -67
- package/src/tracking/github-action.ts +0 -326
- package/src/tracking/google-analytics.ts +0 -265
- package/src/tracking/index.ts +0 -45
- package/src/tracking/report-generator.ts +0 -386
- package/src/tracking/search-console.ts +0 -335
- package/src/types.ts +0 -148
- package/src/utils/http.ts +0 -302
- package/src/wasm-adapter.ts +0 -297
- package/src/wasm-entry.ts +0 -14
- package/tsconfig.json +0 -17
- package/tsup.wasm.config.ts +0 -26
- package/vitest.config.ts +0 -15
|
@@ -1,248 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from 'vitest';
|
|
2
|
-
import {
|
|
3
|
-
detectFromHtml,
|
|
4
|
-
detectFromPackageJson,
|
|
5
|
-
detectFromHeaders,
|
|
6
|
-
detectFramework,
|
|
7
|
-
getFrameworkDisplayName,
|
|
8
|
-
} from './detector.js';
|
|
9
|
-
|
|
10
|
-
describe('Framework Detector', () => {
|
|
11
|
-
describe('detectFromHtml', () => {
|
|
12
|
-
it('detects Next.js from __next data', () => {
|
|
13
|
-
const html = '<div id="__next"><h1>Hello</h1></div>';
|
|
14
|
-
const result = detectFromHtml(html);
|
|
15
|
-
expect(result?.framework).toBe('nextjs');
|
|
16
|
-
expect(result?.confidence).toBe('high');
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
it('detects Next.js from _next scripts', () => {
|
|
20
|
-
const html = '<script src="/_next/static/chunks/main.js"></script>';
|
|
21
|
-
const result = detectFromHtml(html);
|
|
22
|
-
expect(result?.framework).toBe('nextjs');
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
it('detects Nuxt from __nuxt data', () => {
|
|
26
|
-
const html = '<div id="__nuxt"><h1>Hello</h1></div>';
|
|
27
|
-
const result = detectFromHtml(html);
|
|
28
|
-
expect(result?.framework).toBe('nuxt');
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
it('detects Gatsby from ___gatsby', () => {
|
|
32
|
-
const html = '<div id="___gatsby"><h1>Hello</h1></div>';
|
|
33
|
-
const result = detectFromHtml(html);
|
|
34
|
-
expect(result?.framework).toBe('gatsby');
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
it('detects Astro from data-astro attributes', () => {
|
|
38
|
-
const html = '<div data-astro-cid-xyz><h1>Hello</h1></div>';
|
|
39
|
-
const result = detectFromHtml(html);
|
|
40
|
-
expect(result?.framework).toBe('astro');
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
it('detects SvelteKit from __sveltekit', () => {
|
|
44
|
-
const html = '<div id="__sveltekit"><h1>Hello</h1></div>';
|
|
45
|
-
const result = detectFromHtml(html);
|
|
46
|
-
expect(result?.framework).toBe('sveltekit');
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
it('detects React from data-reactroot', () => {
|
|
50
|
-
const html = '<div data-reactroot><h1>Hello</h1></div>';
|
|
51
|
-
const result = detectFromHtml(html);
|
|
52
|
-
expect(result?.framework).toBe('react');
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
it('detects Vue from data-v- attributes', () => {
|
|
56
|
-
const html = '<div data-v-abc123><h1>Hello</h1></div>';
|
|
57
|
-
const result = detectFromHtml(html);
|
|
58
|
-
expect(result?.framework).toBe('vue');
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
it('detects Angular from ng-version', () => {
|
|
62
|
-
const html = '<app-root ng-version="17.0.0"><h1>Hello</h1></app-root>';
|
|
63
|
-
const result = detectFromHtml(html);
|
|
64
|
-
expect(result?.framework).toBe('angular');
|
|
65
|
-
});
|
|
66
|
-
|
|
67
|
-
it('detects Angular from _ngcontent', () => {
|
|
68
|
-
const html = '<div _ngcontent-abc-c123><h1>Hello</h1></div>';
|
|
69
|
-
const result = detectFromHtml(html);
|
|
70
|
-
expect(result?.framework).toBe('angular');
|
|
71
|
-
});
|
|
72
|
-
|
|
73
|
-
it('detects WordPress from wp-content', () => {
|
|
74
|
-
const html = '<link rel="stylesheet" href="/wp-content/themes/theme/style.css">';
|
|
75
|
-
const result = detectFromHtml(html);
|
|
76
|
-
expect(result?.framework).toBe('wordpress');
|
|
77
|
-
});
|
|
78
|
-
|
|
79
|
-
it('detects Rails from turbolinks', () => {
|
|
80
|
-
const html = '<script src="/assets/turbolinks.js"></script>';
|
|
81
|
-
const result = detectFromHtml(html);
|
|
82
|
-
expect(result?.framework).toBe('rails');
|
|
83
|
-
});
|
|
84
|
-
|
|
85
|
-
it('returns null for unknown HTML', () => {
|
|
86
|
-
const html = '<html><body><h1>Hello</h1></body></html>';
|
|
87
|
-
const result = detectFromHtml(html);
|
|
88
|
-
expect(result).toBeNull();
|
|
89
|
-
});
|
|
90
|
-
});
|
|
91
|
-
|
|
92
|
-
describe('detectFromPackageJson', () => {
|
|
93
|
-
it('detects Next.js from dependencies', () => {
|
|
94
|
-
const packageJson = {
|
|
95
|
-
dependencies: { next: '^14.0.0', react: '^18.0.0' },
|
|
96
|
-
};
|
|
97
|
-
const result = detectFromPackageJson(packageJson);
|
|
98
|
-
expect(result?.framework).toBe('nextjs');
|
|
99
|
-
expect(result?.version).toBe('^14.0.0');
|
|
100
|
-
expect(result?.meta_framework).toBe('react');
|
|
101
|
-
});
|
|
102
|
-
|
|
103
|
-
it('detects Nuxt from dependencies', () => {
|
|
104
|
-
const packageJson = {
|
|
105
|
-
dependencies: { nuxt: '^3.0.0', vue: '^3.0.0' },
|
|
106
|
-
};
|
|
107
|
-
const result = detectFromPackageJson(packageJson);
|
|
108
|
-
expect(result?.framework).toBe('nuxt');
|
|
109
|
-
expect(result?.meta_framework).toBe('vue');
|
|
110
|
-
});
|
|
111
|
-
|
|
112
|
-
it('detects React from devDependencies', () => {
|
|
113
|
-
const packageJson = {
|
|
114
|
-
devDependencies: { react: '^18.0.0', 'react-dom': '^18.0.0' },
|
|
115
|
-
};
|
|
116
|
-
const result = detectFromPackageJson(packageJson);
|
|
117
|
-
expect(result?.framework).toBe('react');
|
|
118
|
-
});
|
|
119
|
-
|
|
120
|
-
it('detects Astro', () => {
|
|
121
|
-
const packageJson = {
|
|
122
|
-
dependencies: { astro: '^4.0.0' },
|
|
123
|
-
};
|
|
124
|
-
const result = detectFromPackageJson(packageJson);
|
|
125
|
-
expect(result?.framework).toBe('astro');
|
|
126
|
-
});
|
|
127
|
-
|
|
128
|
-
it('detects SvelteKit', () => {
|
|
129
|
-
const packageJson = {
|
|
130
|
-
devDependencies: { '@sveltejs/kit': '^2.0.0' },
|
|
131
|
-
};
|
|
132
|
-
const result = detectFromPackageJson(packageJson);
|
|
133
|
-
expect(result?.framework).toBe('sveltekit');
|
|
134
|
-
expect(result?.meta_framework).toBe('svelte');
|
|
135
|
-
});
|
|
136
|
-
|
|
137
|
-
it('detects Angular', () => {
|
|
138
|
-
const packageJson = {
|
|
139
|
-
dependencies: { '@angular/core': '^17.0.0' },
|
|
140
|
-
};
|
|
141
|
-
const result = detectFromPackageJson(packageJson);
|
|
142
|
-
expect(result?.framework).toBe('angular');
|
|
143
|
-
});
|
|
144
|
-
|
|
145
|
-
it('returns null for empty package.json', () => {
|
|
146
|
-
const packageJson = {};
|
|
147
|
-
const result = detectFromPackageJson(packageJson);
|
|
148
|
-
expect(result).toBeNull();
|
|
149
|
-
});
|
|
150
|
-
});
|
|
151
|
-
|
|
152
|
-
describe('detectFromHeaders', () => {
|
|
153
|
-
it('detects Next.js from X-Powered-By', () => {
|
|
154
|
-
const headers = { 'x-powered-by': 'Next.js' };
|
|
155
|
-
const result = detectFromHeaders(headers);
|
|
156
|
-
expect(result?.framework).toBe('nextjs');
|
|
157
|
-
});
|
|
158
|
-
|
|
159
|
-
it('detects Nuxt from X-Powered-By', () => {
|
|
160
|
-
const headers = { 'x-powered-by': 'Nuxt' };
|
|
161
|
-
const result = detectFromHeaders(headers);
|
|
162
|
-
expect(result?.framework).toBe('nuxt');
|
|
163
|
-
});
|
|
164
|
-
|
|
165
|
-
it('detects Rails from Phusion Passenger', () => {
|
|
166
|
-
const headers = { 'x-powered-by': 'Phusion Passenger' };
|
|
167
|
-
const result = detectFromHeaders(headers);
|
|
168
|
-
expect(result?.framework).toBe('rails');
|
|
169
|
-
});
|
|
170
|
-
|
|
171
|
-
it('returns null for generic headers', () => {
|
|
172
|
-
const headers = { 'x-powered-by': 'Express' };
|
|
173
|
-
const result = detectFromHeaders(headers);
|
|
174
|
-
expect(result).toBeNull();
|
|
175
|
-
});
|
|
176
|
-
});
|
|
177
|
-
|
|
178
|
-
describe('detectFramework', () => {
|
|
179
|
-
it('prioritizes package.json over HTML', () => {
|
|
180
|
-
const result = detectFramework({
|
|
181
|
-
packageJson: { dependencies: { next: '^14.0.0' } },
|
|
182
|
-
html: '<div data-reactroot>',
|
|
183
|
-
});
|
|
184
|
-
expect(result.framework).toBe('nextjs');
|
|
185
|
-
});
|
|
186
|
-
|
|
187
|
-
it('falls back to HTML when no package.json', () => {
|
|
188
|
-
const result = detectFramework({
|
|
189
|
-
html: '<div id="__nuxt">',
|
|
190
|
-
});
|
|
191
|
-
expect(result.framework).toBe('nuxt');
|
|
192
|
-
});
|
|
193
|
-
|
|
194
|
-
it('detects from file patterns', () => {
|
|
195
|
-
const result = detectFramework({
|
|
196
|
-
files: ['next.config.js', 'pages/index.tsx'],
|
|
197
|
-
});
|
|
198
|
-
expect(result.framework).toBe('nextjs');
|
|
199
|
-
});
|
|
200
|
-
|
|
201
|
-
it('detects WordPress from wp-config.php', () => {
|
|
202
|
-
const result = detectFramework({
|
|
203
|
-
files: ['wp-config.php', 'wp-content/themes/theme'],
|
|
204
|
-
});
|
|
205
|
-
expect(result.framework).toBe('wordpress');
|
|
206
|
-
});
|
|
207
|
-
|
|
208
|
-
it('detects Django from manage.py', () => {
|
|
209
|
-
const result = detectFramework({
|
|
210
|
-
files: ['manage.py', 'myapp/settings.py'],
|
|
211
|
-
});
|
|
212
|
-
expect(result.framework).toBe('django');
|
|
213
|
-
});
|
|
214
|
-
|
|
215
|
-
it('detects Rails from Gemfile + routes.rb', () => {
|
|
216
|
-
const result = detectFramework({
|
|
217
|
-
files: ['Gemfile', 'config/routes.rb'],
|
|
218
|
-
});
|
|
219
|
-
expect(result.framework).toBe('rails');
|
|
220
|
-
});
|
|
221
|
-
|
|
222
|
-
it('detects Laravel from artisan', () => {
|
|
223
|
-
const result = detectFramework({
|
|
224
|
-
files: ['artisan', 'app/Http/Controllers'],
|
|
225
|
-
});
|
|
226
|
-
expect(result.framework).toBe('laravel');
|
|
227
|
-
});
|
|
228
|
-
|
|
229
|
-
it('returns unknown for unrecognized input', () => {
|
|
230
|
-
const result = detectFramework({});
|
|
231
|
-
expect(result.framework).toBe('unknown');
|
|
232
|
-
expect(result.confidence).toBe('low');
|
|
233
|
-
});
|
|
234
|
-
});
|
|
235
|
-
|
|
236
|
-
describe('getFrameworkDisplayName', () => {
|
|
237
|
-
it('returns correct display names', () => {
|
|
238
|
-
expect(getFrameworkDisplayName('react')).toBe('React');
|
|
239
|
-
expect(getFrameworkDisplayName('nextjs')).toBe('Next.js');
|
|
240
|
-
expect(getFrameworkDisplayName('vue')).toBe('Vue.js');
|
|
241
|
-
expect(getFrameworkDisplayName('nuxt')).toBe('Nuxt');
|
|
242
|
-
expect(getFrameworkDisplayName('angular')).toBe('Angular');
|
|
243
|
-
expect(getFrameworkDisplayName('rails')).toBe('Ruby on Rails');
|
|
244
|
-
expect(getFrameworkDisplayName('wordpress')).toBe('WordPress');
|
|
245
|
-
expect(getFrameworkDisplayName('unknown')).toBe('Unknown');
|
|
246
|
-
});
|
|
247
|
-
});
|
|
248
|
-
});
|