package init
This commit is contained in:
parent
ec5e38f6da
commit
74a4963864
49
nodejs-p-locate.spec
Normal file
49
nodejs-p-locate.spec
Normal file
@ -0,0 +1,49 @@
|
||||
%{?nodejs_find_provides_and_requires}
|
||||
%global packagename p-locate
|
||||
%global enable_tests 0
|
||||
Name: nodejs-p-locate
|
||||
Version: 2.0.0
|
||||
Release: 1
|
||||
Summary: Get the first fulfilled promise that satisfies the provided testing function
|
||||
License: MIT
|
||||
URL: https://github.com/sindresorhus/p-locate
|
||||
Source0: https://registry.npmjs.org/%{packagename}/-/%{packagename}-%{version}.tgz
|
||||
Source1: https://raw.githubusercontent.com/sindresorhus/p-locate/v%{version}/test.js
|
||||
ExclusiveArch: %{nodejs_arches} noarch
|
||||
BuildArch: noarch
|
||||
BuildRequires: nodejs-packaging npm(p-limit)
|
||||
%if 0%{?enable_tests}
|
||||
BuildRequires: ava
|
||||
%endif
|
||||
%description
|
||||
Get the first fulfilled promise that satisfies the provided testing function
|
||||
|
||||
%prep
|
||||
%autosetup -n package
|
||||
cp -p %{SOURCE1} .
|
||||
|
||||
%build
|
||||
|
||||
%install
|
||||
mkdir -p %{buildroot}%{nodejs_sitelib}/%{packagename}
|
||||
cp -pr package.json index.js \
|
||||
%{buildroot}%{nodejs_sitelib}/%{packagename}
|
||||
%nodejs_symlink_deps
|
||||
|
||||
%check
|
||||
%nodejs_symlink_deps --check
|
||||
%{__nodejs} -e 'require("./")'
|
||||
%if 0%{?enable_tests}
|
||||
%{_bindir}/ava
|
||||
%else
|
||||
%{_bindir}/echo -e "\e[101m -=#=- Tests disabled -=#=- \e[0m"
|
||||
%endif
|
||||
|
||||
%files
|
||||
%doc readme.md
|
||||
%license license
|
||||
%{nodejs_sitelib}/%{packagename}
|
||||
|
||||
%changelog
|
||||
* Mon Aug 17 2020 wutao <wutao61@huawei.com> - 2.0.0-1
|
||||
- Package init
|
||||
4
nodejs-p-locate.yaml
Normal file
4
nodejs-p-locate.yaml
Normal file
@ -0,0 +1,4 @@
|
||||
version_control: github
|
||||
src_repo: sindresorhus/p-locate
|
||||
tag_prefix: "^v"
|
||||
seperator: "."
|
||||
BIN
p-locate-2.0.0.tgz
Normal file
BIN
p-locate-2.0.0.tgz
Normal file
Binary file not shown.
41
test.js
Normal file
41
test.js
Normal file
@ -0,0 +1,41 @@
|
||||
import {serial as test} from 'ava';
|
||||
import delay from 'delay';
|
||||
import inRange from 'in-range';
|
||||
import timeSpan from 'time-span';
|
||||
import m from './';
|
||||
|
||||
const input = [
|
||||
[1, 300],
|
||||
[2, 400],
|
||||
[3, 200],
|
||||
Promise.resolve([4, 100]) // ensures promises work in the input
|
||||
];
|
||||
|
||||
const tester = ([val, ms]) => delay(ms).then(() => val === 2 || val === 3);
|
||||
|
||||
test('main', async t => {
|
||||
const end = timeSpan();
|
||||
t.is((await m(input, tester))[0], 2);
|
||||
t.true(inRange(end(), 370, 450), 'should be time of item `2`');
|
||||
});
|
||||
|
||||
test('option {preserveOrder:false}', async t => {
|
||||
const end = timeSpan();
|
||||
t.is((await m(input, tester, {preserveOrder: false}))[0], 3);
|
||||
t.true(inRange(end(), 170, 250), 'should be time of item `3`');
|
||||
});
|
||||
|
||||
test('option {concurrency:1}', async t => {
|
||||
const end = timeSpan();
|
||||
t.is((await m(input, tester, {concurrency: 1}))[0], 2);
|
||||
t.true(inRange(end(), 670, 750), 'should be time of items `1` and `2`, since they run serially');
|
||||
});
|
||||
|
||||
test('returns `undefined` when nothing could be found', async t => {
|
||||
t.is((await m([1, 2, 3], () => false)), undefined);
|
||||
});
|
||||
|
||||
test('rejected return value in `tester` rejects the promise', async t => {
|
||||
const fixtureErr = new Error('fixture');
|
||||
await t.throws(m([1, 2, 3], () => Promise.reject(fixtureErr)), fixtureErr.message);
|
||||
});
|
||||
Loading…
x
Reference in New Issue
Block a user