Skip to content

Commit 73be24f

Browse files
committed
Add METASCRAPER_CWD tests and documentation
Closes #52
1 parent ab03d97 commit 73be24f

File tree

13 files changed

+158
-11
lines changed

13 files changed

+158
-11
lines changed

README.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -312,6 +312,15 @@ It is used for resolve relative links that can be present in the HTML markup.
312312

313313
it can be used as fallback field for different rules as well.
314314

315+
## Environment Variables
316+
317+
### METASCRAPER_CWD
318+
319+
Type: `String` <br/>
320+
Default: `process.cwd()`
321+
322+
This variable is used to determine where starting search for a configuration object.
323+
315324
## Comparison
316325

317326
To give you an idea of how accurate **metascraper** is, here is a comparison of similar libraries:

packages/metascraper-amazon/test/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,13 @@ let metascraper
1515
describe('metascraper-amazon', () => {
1616
before(() => {
1717
clearModule('metascraper')
18-
process.env.METASCRAPER_CONFIG_CWD = __dirname
18+
process.env.METASCRAPER_CWD = __dirname
1919
metascraper = require('metascraper')
2020
})
2121

2222
after(() => {
2323
clearModule('metascraper')
24-
delete process.env.METASCRAPER_CONFIG_CWD
24+
delete process.env.METASCRAPER_CWD
2525
})
2626

2727
describe('amazon.co.uk', () => {

packages/metascraper-clearbit-logo/test/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@ const snapshot = require('snap-shot')
66
describe('metascraper clearbit logo', () => {
77
before(() => {
88
clearModule.all()
9-
process.env.METASCRAPER_CONFIG_CWD = __dirname
9+
process.env.METASCRAPER_CWD = __dirname
1010
})
1111

1212
after(() => {
1313
clearModule.all()
14-
delete process.env.METASCRAPER_CONFIG_CWD
14+
delete process.env.METASCRAPER_CWD
1515
})
1616

1717
it('if logo is not present, fallback to clearbit logo API', async () => {

packages/metascraper-logo-favicon/test/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@ const readFile = promisify(fs.readFile)
1212
describe('metascraper amazon integration', () => {
1313
before(() => {
1414
clearModule.all()
15-
process.env.METASCRAPER_CONFIG_CWD = __dirname
15+
process.env.METASCRAPER_CWD = __dirname
1616
})
1717

1818
after(() => {
1919
clearModule.all()
20-
delete process.env.METASCRAPER_CONFIG_CWD
20+
delete process.env.METASCRAPER_CWD
2121
})
2222

2323
describe('metascraper logo favicon', () => {

packages/metascraper-soundcloud/test/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@ let metascraper
1313
describe('metascraper-soundcloud', () => {
1414
before(() => {
1515
clearModule('metascraper')
16-
process.env.METASCRAPER_CONFIG_CWD = __dirname
16+
process.env.METASCRAPER_CWD = __dirname
1717
metascraper = require('metascraper')
1818
})
1919

2020
after(() => {
2121
clearModule('metascraper')
22-
delete process.env.METASCRAPER_CONFIG_CWD
22+
delete process.env.METASCRAPER_CWD
2323
})
2424

2525
it('song', async () => {

packages/metascraper-youtube/test/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@ let metascraper
1313
describe('metascraper-youtube', () => {
1414
before(() => {
1515
clearModule('metascraper')
16-
process.env.METASCRAPER_CONFIG_CWD = __dirname
16+
process.env.METASCRAPER_CWD = __dirname
1717
metascraper = require('metascraper')
1818
})
1919

2020
after(() => {
2121
clearModule('metascraper')
22-
delete process.env.METASCRAPER_CONFIG_CWD
22+
delete process.env.METASCRAPER_CWD
2323
})
2424

2525
it('youtube video', async () => {

packages/metascraper/src/load-rules.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
'use strict'
22

3-
const cwd = process.env.METASCRAPER_CONFIG_CWD || process.cwd()
3+
const cwd = process.env.METASCRAPER_CWD || process.cwd()
44
const config = require('cosmiconfig')('metascraper').load(cwd)
55
const resolveFrom = require('resolve-from')
66

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
'use strict'
2+
3+
const clearModule = require('clear-module')
4+
const should = require('should')
5+
6+
let metascraper
7+
8+
describe('load rules', () => {
9+
before(() => {
10+
clearModule('metascraper')
11+
process.env.METASCRAPER_CWD = __dirname
12+
metascraper = require('../../../..')
13+
})
14+
15+
after(() => {
16+
clearModule('metascraper')
17+
delete process.env.METASCRAPER_CWD
18+
})
19+
20+
it('based on a configuration file', async () => {
21+
const url = 'https://facebook.com'
22+
const html = '<div></div>'
23+
24+
const meta = await metascraper({ url, html })
25+
should(meta.logo).be.equal(
26+
'https://logo.clearbit.com/facebook.com?size=128&format=jpg'
27+
)
28+
})
29+
})
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
module.exports = {
2+
rules: [
3+
'metascraper-author',
4+
'metascraper-date',
5+
'metascraper-description',
6+
'metascraper-image',
7+
'metascraper-logo',
8+
{
9+
'metascraper-clearbit-logo': {
10+
format: 'jpg'
11+
}
12+
},
13+
'metascraper-publisher',
14+
'metascraper-title',
15+
'metascraper-url'
16+
]
17+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
'use strict'
2+
3+
const clearModule = require('clear-module')
4+
const should = require('should')
5+
6+
let metascraper
7+
8+
describe('load rules', () => {
9+
before(() => {
10+
clearModule('metascraper')
11+
process.env.METASCRAPER_CWD = __dirname
12+
metascraper = require('../../../..')
13+
})
14+
15+
after(() => {
16+
clearModule('metascraper')
17+
delete process.env.METASCRAPER_CWD
18+
})
19+
20+
it('based on a package file', async () => {
21+
const url = 'https://facebook.com'
22+
const html = '<div></div>'
23+
24+
const meta = await metascraper({ url, html })
25+
should(meta.logo).be.equal(
26+
'https://logo.clearbit.com/facebook.com?size=128&format=jpg'
27+
)
28+
})
29+
})

0 commit comments

Comments
 (0)