Skip to content

Commit

Permalink
test: run expectation tests in previous Safari
Browse files Browse the repository at this point in the history
  • Loading branch information
chrisguttandin committed Aug 2, 2023
1 parent 323f317 commit 08b27db
Show file tree
Hide file tree
Showing 6 changed files with 107 additions and 4 deletions.
3 changes: 2 additions & 1 deletion config/grunt/aliases.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ module.exports = {
...filter(isTarget(), 'sh:test-expectation-firefox-developer'),
...filter(isTarget('firefox-penultimate'), 'sh:test-expectation-firefox-penultimate'),
...filter(isTarget('firefox-previous'), 'sh:test-expectation-firefox-previous'),
...filter(isTarget('safari'), 'sh:test-expectation-safari')
...filter(isTarget('safari'), 'sh:test-expectation-safari'),
...filter(isTarget('safari-previous'), 'sh:test-expectation-firefox-previous')
),
...filter(isType('integration'), 'sh:test-integration'),
...filter(isType('unit'), 'sh:test-unit')
Expand Down
3 changes: 3 additions & 0 deletions config/grunt/sh.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,9 @@ module.exports = (grunt) => {
'test-expectation-safari': {
cmd: `karma start config/karma/config-expectation-safari.js ${continuous ? '--concurrency Infinity' : '--single-run'}`
},
'test-expectation-safari-previous': {
cmd: `karma start config/karma/config-expectation-safari-previous.js ${continuous ? '--concurrency Infinity' : '--single-run'}`
},
'test-integration': {
cmd: `karma start config/karma/config-integration.js ${continuous ? '--concurrency Infinity' : '--single-run'}`
},
Expand Down
70 changes: 70 additions & 0 deletions config/karma/config-expectation-safari-previous.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
const { env } = require('process');
const { DefinePlugin } = require('webpack');

module.exports = (config) => {
config.set({
basePath: '../../',

browserDisconnectTimeout: 100000,

browserNoActivityTimeout: 100000,

browsers: ['WebkitHeadless'],

client: {
mocha: {
bail: true,
timeout: 20000
}
},

concurrency: 1,

files: ['test/expectation/safari/previous/**/*.js'],

frameworks: ['mocha', 'sinon-chai'],

preprocessors: {
'test/expectation/safari/previous/**/*.js': 'webpack'
},

reporters: ['dots'],

webpack: {
mode: 'development',
module: {
rules: [
{
test: /\.ts?$/,
use: {
loader: 'ts-loader',
options: {
compilerOptions: {
declaration: false,
declarationMap: false
}
}
}
}
]
},
plugins: [
new DefinePlugin({
'process.env': {
CI: JSON.stringify(env.CI)
}
})
],
resolve: {
extensions: ['.js', '.ts'],
fallback: { util: false }
}
},

webpackMiddleware: {
noInfo: true
}
});

env.WEBKIT_HEADLESS_BIN = 'webkit-v16-4/pw_run.sh';
};
4 changes: 2 additions & 2 deletions config/karma/config-expectation-safari.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,12 @@ module.exports = (config) => {

concurrency: 1,

files: ['test/expectation/safari/**/*.js'],
files: ['test/expectation/safari/current/**/*.js'],

frameworks: ['mocha', 'sinon-chai'],

preprocessors: {
'test/expectation/safari/**/*.js': 'webpack'
'test/expectation/safari/current/**/*.js': 'webpack'
},

reporters: ['dots'],
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { AudioContext } from 'standardized-audio-context';
import { createMediaStreamWithAudioTrack } from '../../helpers/create-media-stream-with-audio-track';
import { createMediaStreamWithAudioTrack } from '../../../helpers/create-media-stream-with-audio-track';

describe('MediaStream', () => {
let audioContext;
Expand Down
29 changes: 29 additions & 0 deletions test/expectation/safari/previous/media-stream.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import { AudioContext } from 'standardized-audio-context';
import { createMediaStreamWithAudioTrack } from '../../../helpers/create-media-stream-with-audio-track';

describe('MediaStream', () => {
let audioContext;
let mediaStream;

afterEach(() => {
audioContext.close();
mediaStream.getTracks().forEach((track) => track.stop());
});

beforeEach(async () => {
audioContext = new AudioContext();
mediaStream = await createMediaStreamWithAudioTrack(audioContext);
});

// bug #15

it('should not expose the channelCount as part of the settings', () => {
expect(mediaStream.getAudioTracks()[0].getSettings().channelCount).to.be.undefined;
});

// bug #16

it('should not expose the sampleRate as part of the settings', () => {
expect(mediaStream.getAudioTracks()[0].getSettings().sampleRate).to.be.undefined;
});
});

0 comments on commit 08b27db

Please sign in to comment.