{"id":14989746,"url":"https://github.com/onechiporenko/chai-string","last_synced_at":"2025-04-04T22:03:40.850Z","repository":{"id":20267688,"uuid":"23540729","full_name":"onechiporenko/chai-string","owner":"onechiporenko","description":"Strings comparison matchers for chai","archived":false,"fork":false,"pushed_at":"2025-03-26T06:14:05.000Z","size":79,"stargazers_count":25,"open_issues_count":7,"forks_count":11,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-28T21:02:25.097Z","etag":null,"topics":["chai","chai-plugin","chai-string","javascript"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/onechiporenko.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-09-01T11:49:55.000Z","updated_at":"2025-03-15T10:30:55.000Z","dependencies_parsed_at":"2024-06-18T14:03:00.772Z","dependency_job_id":"93760db8-360e-486f-83a7-837b4994dda8","html_url":"https://github.com/onechiporenko/chai-string","commit_stats":{"total_commits":40,"total_committers":11,"mean_commits":"3.6363636363636362","dds":0.35,"last_synced_commit":"869a3377d176bd84b1130833f4de9a8c8278f63f"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onechiporenko%2Fchai-string","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onechiporenko%2Fchai-string/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onechiporenko%2Fchai-string/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onechiporenko%2Fchai-string/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/onechiporenko","download_url":"https://codeload.github.com/onechiporenko/chai-string/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247256105,"owners_count":20909240,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chai","chai-plugin","chai-string","javascript"],"created_at":"2024-09-24T14:18:51.492Z","updated_at":"2025-04-04T22:03:40.828Z","avatar_url":"https://github.com/onechiporenko.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# chai-string\n\nMatchers for chai to help with common string comparison assertions.\n\n[![CI](https://github.com/onechiporenko/chai-string/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/onechiporenko/chai-string/actions/workflows/ci.yml)\n[![Downloads](http://img.shields.io/npm/dm/chai-string.svg)](https://www.npmjs.com/package/chai-string)\n\n## Usage\n\n* `chai-string@1.x` is compatible with `chai@4.x` and `chai@5.x`.\n* `chai-string@2.x` is compatible with `chai@5.x` because of ESM.\n\nAll assertions should work in the same way with both versions.\n\n```javascript\n// v1.x\nconst chai = require('chai');\nchai.use(require('chai-string'));\n\n// v2.x\nimport { use } from 'chai';\nimport chaiString from 'chai-string';\n\nconst chai = use(chaiString);\n```\n\n## Assertions\n\n* startsWith / startWith\n* startsWithIgnoreCase / startWithIgnoreCase\n* endsWith / endWith\n* endsWithIgnoreCase / endWithIgnoreCase\n* equalIgnoreCase\n* equalIgnoreSpaces\n* containIgnoreSpaces\n* containIgnoreCase\n* singleLine\n* reverseOf\n* palindrome\n* entriesCount\n* indexOf\n\nAll assertions are defined for both the BDD and TDD syntax but some aliases exist to make the assertions look good with both styles.\n\n```javascript\nconst d1 = 'abcdef',\n    d2 = 'abc';\n\nd1.should.startWith.d2;\nexpect(d1).to.startsWith(d2);\nassert.startsWith(d1, d2);\n```\n\n### startsWith / startWith\n```javascript\nassert.startsWith('abcdef', 'abc');\nexpect('abcdef').to.startsWith('abc');\n'abcdef'.should.startWith('abc');\n```\n\n### startsWithIgnoreCase / startWithIgnoreCase\n```javascript\nassert.startsWithIgnoreCase('aBcdef', 'abC');\nexpect('abCdef').to.startsWithIgnoreCase('Abc');\n'Abcdef'.should.startWithIgnoreCase('aBc');\n```\n\n### endsWith / endWith\n```javascript\nassert.endsWith('abcdef', 'def');\nexpect('abcdef').to.endsWith('def');\n'abcdef'.should.endWith('def');\n```\n\n### endsWithIgnoreCase / endWithIgnoreCase\n```javascript\nassert.endsWithIgnoreCase('abcdEf', 'deF');\nexpect('abcDef').to.endsWithIgnoreCase('dEf');\n'abcdeF'.should.endWithIgnoreCase('Def');\n```\n\n### equalIgnoreCase\n```javascript\nassert.equalIgnoreCase('abcdef', 'AbCdEf');\nexpect('abcdef').to.equalIgnoreCase('AbCdEf');\n```\n\n### equalIgnoreSpaces\n```javascript\nassert.equalIgnoreSpaces('abcdef', 'a\\nb\\tc\\r d  ef');\nexpect('abcdef').to.equalIgnoreSpaces('a\\nb\\tc\\r d  ef');\n```\n\n### containIgnoreSpaces\n```javascript\nassert.containIgnoreSpaces('abcdefgh', 'a\\nb\\tc\\r d  ef');\nexpect('abcdefgh').to.containIgnoreSpaces('a\\nb\\tc\\r d  ef');\n```\n\n### containIgnoreCase\n```javascript\nassert.containIgnoreCase('abcdefgh', 'AbcDefGH'); \nexpect('abcdefgh').to.containIgnoreCase('AbcDefGH');\n'abcdef'.should.containIgnoreCase('cDe');\n```\n\n### singleLine\n```javascript\nassert.singleLine('abcdef');\nexpect('abcdef').to.be.singleLine();\n```\n\n### reverseOf\n```javascript\nassert.reverseOf('abcdef', 'fedcba');\nexpect('abcdef').to.be.reverseOf('fedcba');\n```\n\n### palindrome\n```javascript\nassert.palindrome('abccba');\nexpect('abccba').to.be.palindrome();\n```\n\n### entriesCount\n```javascript\nassert.entriesCount('abcabd', 'ab', 2);\nexpect('abcabd').to.have.entriesCount('ab', 2);\n```\n\n### indexOf\n```javascript\nassert.indexOf('abcabd', 'ab', 0);\nexpect('abcabd').to.have.indexOf('ab', 0);\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fonechiporenko%2Fchai-string","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fonechiporenko%2Fchai-string","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fonechiporenko%2Fchai-string/lists"}