yoastseo-dep
Version:
Yoast clientside page analysis
158 lines (130 loc) • 6.29 kB
JavaScript
import getResults from "../getAssessorResults";
import Paper from "../../../src/values/Paper";
/**
* Checks which assessment are available for a related keyphrase assessor, given a certain Paper.
* @param {Assessor} assessor The related keyphrase assessor.
* @returns {void}
*/
export function checkAssessmentAvailability( assessor ) {
it( "runs assessments without any specific requirements", function() {
assessor.assess( new Paper( "" ) );
const assessments = getResults( assessor.getValidResults() );
expect( assessments ).toEqual( [
"keyphraseLength",
] );
} );
it( "runs assessments that only require a keyword", function() {
assessor.assess( new Paper( "", { keyword: "keyword" } ) );
const assessments = getResults( assessor.getValidResults() );
expect( assessments ).toEqual( [
"keyphraseLength",
] );
} );
it( "runs assessments that only require a keyword that consists of function words only", function() {
assessor.assess( new Paper( "", { keyword: "a" } ) );
const assessments = getResults( assessor.getValidResults() );
expect( assessments ).toEqual( [
"keyphraseLength",
"functionWordsInKeyphrase",
] );
} );
it( "additionally runs assessments that require a text and a keyword", function() {
assessor.assess( new Paper( "text", { keyword: "keyword" } ) );
const assessments = getResults( assessor.getValidResults() );
expect( assessments ).toEqual( [
"introductionKeyword",
"keyphraseLength",
] );
} );
it( "additionally runs assessments that require a text, a keyword, and a meta description", function() {
assessor.assess( new Paper( "text", { keyword: "keyword", description: "description" } ) );
const assessments = getResults( assessor.getValidResults() );
expect( assessments ).toEqual( [
"introductionKeyword",
"keyphraseLength",
"metaDescriptionKeyword",
] );
} );
it( "additionally runs assessments that require a text of at least 100 words and a keyword", function() {
const paper = new Paper( "This is a text about the keyword. Lorem ipsum dolor sit amet, fugit" +
"munere consulatu an est, ex eruditi gloriatur reformidans vim. At ius falli laboramus, ei" +
"euripidis dissentiet vix. Pro novum eligendi repudiare no, in vix stet hinc. Mollis qualisque" +
"iudicabit id mei, legimus aliquando democritum duo cu. Id eripuit omnesque appellantur pro," +
"vim ne menandri appellantur. Usu omnes timeam tritani et, an falli consectetuer vix. Vel" +
"ne enim constituam. Et summo mentitum mea. Cu his nusquam civibus officiis, vix tota appellantur" +
"no, fuisset invenire molestiae pro ne. Ne case essent mei, ut quo ferri malorum albucius. Id nonumes" +
"inimicus vix. Ei duo prompta electram, iudico.", { keyword: "keyword" } );
assessor.assess( paper );
const assessments = getResults( assessor.getValidResults() );
expect( assessments ).toEqual( [
"introductionKeyword",
"keyphraseLength",
"keyphraseDensity",
] );
} );
}
/**
* Checks the URLs for a given relatedKeyphraseAssessor.
* @param {Assessor} assessor The related keyphrase assessor.
* @returns {void}
*/
export function checkUrls( assessor ) {
const isCollection = assessor.type.startsWith( "collection" );
test( "IntroductionKeyword", () => {
const assessment = assessor.getAssessment( "introductionKeyword" );
expect( assessment ).toBeDefined();
expect( assessment._config ).toBeDefined();
expect( assessment._config.urlTitle ).toBe( "<a href='https://yoa.st/shopify8' target='_blank'>" );
expect( assessment._config.urlCallToAction ).toBe( "<a href='https://yoa.st/shopify9' target='_blank'>" );
} );
test( "KeyphraseLength", () => {
const assessment = assessor.getAssessment( "keyphraseLength" );
expect( assessment ).toBeDefined();
expect( assessment._config ).toBeDefined();
expect( assessment._config.urlTitle ).toBe( "<a href='https://yoa.st/shopify10' target='_blank'>" );
expect( assessment._config.urlCallToAction ).toBe( "<a href='https://yoa.st/shopify11' target='_blank'>" );
} );
test( "MetaDescriptionKeyword", () => {
const assessment = assessor.getAssessment( "metaDescriptionKeyword" );
expect( assessment ).toBeDefined();
expect( assessment._config ).toBeDefined();
expect( assessment._config.urlTitle ).toBe( "<a href='https://yoa.st/shopify14' target='_blank'>" );
expect( assessment._config.urlCallToAction ).toBe( "<a href='https://yoa.st/shopify15' target='_blank'>" );
} );
test( "keyphraseDensity", () => {
const assessment = assessor.getAssessment( "keyphraseDensity" );
expect( assessment ).toBeDefined();
expect( assessment._config ).toBeDefined();
expect( assessment._config.urlTitle ).toBe( "<a href='https://yoa.st/shopify12' target='_blank'>" );
expect( assessment._config.urlCallToAction ).toBe( "<a href='https://yoa.st/shopify13' target='_blank'>" );
} );
test( "TextCompetingLinks", () => {
const assessment = assessor.getAssessment( "textCompetingLinks" );
if ( isCollection ) {
expect( assessment ).toBeUndefined();
} else {
expect( assessment ).toBeDefined();
expect( assessment._config ).toBeDefined();
expect( assessment._config.urlTitle ).toBe( "<a href='https://yoa.st/shopify18' target='_blank'>" );
expect( assessment._config.urlCallToAction ).toBe( "<a href='https://yoa.st/shopify19' target='_blank'>" );
}
} );
test( "FunctionWordsInKeyphrase", () => {
const assessment = assessor.getAssessment( "functionWordsInKeyphrase" );
expect( assessment ).toBeDefined();
expect( assessment._config ).toBeDefined();
expect( assessment._config.urlTitle ).toBe( "<a href='https://yoa.st/shopify50' target='_blank'>" );
expect( assessment._config.urlCallToAction ).toBe( "<a href='https://yoa.st/shopify51' target='_blank'>" );
} );
test( "ImageKeyphrase", () => {
const assessment = assessor.getAssessment( "imageKeyphrase" );
if ( isCollection ) {
expect( assessment ).toBeUndefined();
} else {
expect( assessment ).toBeDefined();
expect( assessment._config ).toBeDefined();
expect( assessment._config.urlTitle ).toBe( "<a href='https://yoa.st/shopify22' target='_blank'>" );
expect( assessment._config.urlCallToAction ).toBe( "<a href='https://yoa.st/shopify23' target='_blank'>" );
}
} );
}